具体描述
Python 简单易学,拥有丰富的库,并且具有极强的包容性。本书展示了如何利用Python 语言的强大功能,以最小的编程代价进行数据的提取、处理和分析,主要内容包括:数据分析和Python 的基本介绍,NumPy 库,pandas 库,如何使用pandas 读写和提取数据,用matplotlib 库和scikit-learn 库分别实现数据可视化和机器学习,以实例演示如何从原始数据获得信息、D3 库嵌入和手写体数字的识别。
作者简介
作者简介:
Fabio Nelli
IRBM科学园IT科学应用专家,曾为IBM、EDS等企业提供咨询。目前正在开发Java应用,对接科学仪器和Oracle数据库,生成数据和Web服务器应用,为研究人员提供实时分析结果。他还是Meccanismo Complesso社区(www.meccanismocomplesso.org)的项目协调人。
译者简介:
杜春晓
英语语言文学学士,软件工程硕士。其他译著有《电子达人——我的第一本Raspberry Pi入门手册》和《Python数据挖掘入门与实践》。新浪微博:@宜_生。
目录信息
1.1 数据分析 1
1.2 数据分析师的知识范畴 2
1.2.1 计算机科学 2
1.2.2 数学和统计学 3
1.2.3 机器学习和人工智能 3
1.2.4 数据来源领域 3
1.3 理解数据的性质 4
1.3.1 数据到信息的转变 4
1.3.2 信息到知识的转变 4
1.3.3 数据的类型 4
1.4 数据分析过程 4
1.4.1 问题定义 5
1.4.2 数据抽取 6
1.4.3 数据准备 6
1.4.4 数据探索和可视化 7
1.4.5 预测模型 7
1.4.6 模型评估 8
1.4.7 部署 8
1.5 定量和定性数据分析 9
1.6 开放数据 9
1.7 Python和数据分析 11
1.8 结论 11
第2章 Python世界简介 12
2.1 Python——编程语言 12
2.2 Python——解释器 13
2.2.1 Cython 14
2.2.2 Jython 14
2.2.3 PyPy 14
2.3 Python 2和Python 3 14
2.4 安装Python 15
2.5 Python发行版 15
2.5.1 Anaconda 15
2.5.2 Enthought Canopy 16
2.5.3 Python(x,y) 17
2.6 使用Python 17
2.6.1 Python shell 17
2.6.2 运行完整的Python程序 17
2.6.3 使用IDE编写代码 18
2.6.4 跟Python交互 18
2.7 编写Python代码 18
2.7.1 数学运算 18
2.7.2 导入新的库和函数 19
2.7.3 函数式编程 21
2.7.4 缩进 22
2.8 IPython 23
2.8.1 IPython shell 23
2.8.2 IPython Qt-Console 24
2.9 PyPI仓库——Python包索引 25
2.10 多种Python IDE 26
2.10.1 IDLE 26
2.10.2 Spyder 27
2.10.3 Eclipse(pyDev) 27
2.10.4 Sublime 28
2.10.5 Liclipse 29
2.10.6 NinjaIDE 29
2.10.7 Komodo IDE 29
2.11 SciPy 30
2.11.1 NumPy 30
2.11.2 pandas 30
2.11.3 matplotlib 31
2.12 小结 31
第3章 NumPy库 32
3.1 NumPy简史 32
3.2 NumPy安装 32
3.3 ndarray:NumPy库的心脏 33
3.3.1 创建数组 34
3.3.2 数据类型 34
3.3.3 dtype选项 35
3.3.4 自带的数组创建方法 36
3.4 基本操作 37
3.4.1 算术运算符 37
3.4.2 矩阵积 38
3.4.3 自增和自减运算符 39
3.4.4 通用函数 40
3.4.5 聚合函数 40
3.5 索引机制、切片和迭代方法 41
3.5.1 索引机制 41
3.5.2 切片操作 42
3.5.3 数组迭代 43
3.6 条件和布尔数组 45
3.7 形状变换 45
3.8 数组操作 46
3.8.1 连接数组 46
3.8.2 数组切分 47
3.9 常用概念 49
3.9.1 对象的副本或视图 49
3.9.2 向量化 50
3.9.3 广播机制 50
3.10 结构化数组 52
3.11 数组数据文件的读写 53
3.11.1 二进制文件的读写 54
3.11.2 读取文件中的列表形式数据 54
3.12 小结 55
第4章 pandas库简介 56
4.1 pandas:Python数据分析库 56
4.2 安装 57
4.2.1 用Anaconda安装 57
4.2.2 用PyPI安装 58
4.2.3 在Linux系统的安装方法 58
4.2.4 用源代码安装 58
4.2.5 Windows模块仓库 59
4.3 测试pandas是否安装成功 59
4.4 开始pandas之旅 59
4.5 pandas数据结构简介 60
4.5.1 Series对象 60
4.5.2 DataFrame对象 66
4.5.3 Index对象 72
4.6 索引对象的其他功能 74
4.6.1 更换索引 74
4.6.2 删除 75
4.6.3 算术和数据对齐 77
4.7 数据结构之间的运算 78
4.7.1 灵活的算术运算方法 78
4.7.2 DataFrame和Series对象之间的运算 78
4.8 函数应用和映射 79
4.8.1 操作元素的函数 79
4.8.2 按行或列执行操作的函数 80
4.8.3 统计函数 81
4.9 排序和排位次 81
4.10 相关性和协方差 84
4.11 NaN数据 85
4.11.1 为元素赋NaN值 85
4.11.2 过滤NaN 86
4.11.3 为NaN元素填充其他值 86
4.12 等级索引和分级 87
4.12.1 重新调整顺序和为层级排序 89
4.12.2 按层级统计数据 89
4.13 小结 90
第5章 pandas:数据读写 91
5.1 I/O API 工具 91
5.2 CSV和文本文件 92
5.3 读取CSV或文本文件中的数据 92
5.3.1 用RegExp解析TXT文件 94
5.3.2 从TXT文件读取部分数据 96
5.3.3 往CSV文件写入数据 97
5.4 读写HTML文件 98
5.4.1 写入数据到HTML文件 99
5.4.2 从HTML文件读取数据 100
5.5 从XML读取数据 101
5.6 读写Microsoft Excel文件 103
5.7 JSON数据 105
5.8 HDF5格式 107
5.9 pickle——Python对象序列化 108
5.9.1 用cPickle实现Python对象序列化 109
5.9.2 用pandas实现对象序列化 109
5.10 对接数据库 110
5.10.1 SQLite3数据读写 111
5.10.2 PostgreSQL数据读写 112
5.11 NoSQL数据库MongoDB数据读写 114
5.12 小结 116
第6章 深入pandas:数据处理 117
6.1 数据准备 117
6.2 拼接 122
6.2.1 组合 124
6.2.2 轴向旋转 125
6.2.3 删除 127
6.3 数据转换 128
6.3.1 删除重复元素 128
6.3.2 映射 129
6.4 离散化和面元划分 132
6.5 排序 136
6.6 字符串处理 137
6.6.1 内置的字符串处理方法 137
6.6.2 正则表达式 139
6.7 数据聚合 140
6.7.1 GroupBy 141
6.7.2 实例 141
6.7.3 等级分组 142
6.8 组迭代 143
6.8.1 链式转换 144
6.8.2 分组函数 145
6.9 高级数据聚合 145
6.10 小结 148
第7章 用matplotlib实现数据可视化 149
7.1 matplotlib库 149
7.2 安装 150
7.3 IPython和IPython QtConsole 150
7.4 matplotlib架构 151
7.4.1 Backend层 152
7.4.2 Artist层 152
7.4.3 Scripting层(pyplot) 153
7.4.4 pylab和pyplot 153
7.5 pyplot 154
7.5.1 生成一幅简单的交互式图表 154
7.5.2 设置图形的属性 156
7.5.3 matplotlib和NumPy 158
7.6 使用kwargs 160
7.7 为图表添加更多元素 162
7.7.1 添加文本 162
7.7.2 添加网格 165
7.7.3 添加图例 166
7.8 保存图表 168
7.8.1 保存代码 169
7.8.2 将会话转换为HTML文件 170
7.8.3 将图表直接保存为图片 171
7.9 处理日期值 171
7.10 图表类型 173
7.11 线性图 173
7.12 直方图 180
7.13 条状图 181
7.13.1 水平条状图 183
7.13.2 多序列条状图 184
7.13.3 为pandas DataFrame生成多序列条状图 185
7.13.4 多序列堆积条状图 186
7.13.5 为pandas DataFrame绘制堆积条状图 189
7.13.6 其他条状图 190
7.14 饼图 190
7.15 高级图表 193
7.15.1 等值线图 193
7.15.2 极区图 195
7.16 mplot3d 197
7.16.1 3D曲面 197
7.16.2 3D散点图 198
7.16.3 3D条状图 199
7.17 多面板图形 200
7.17.1 在其他子图中显示子图 200
7.17.2 子图网格 202
7.18 小结 204
第8章 用scikit-learn库实现机器学习 205
8.1 scikit-learn库 205
8.2 机器学习 205
8.2.1 有监督和无监督学习 205
8.2.2 训练集和测试集 206
8.3 用scikit-learn实现有监督学习 206
8.4 Iris数据集 206
8.5 K-近邻分类器 211
8.6 Diabetes数据集 214
8.7 线性回归:最小平方回归 215
8.8 支持向量机 219
8.8.1 支持向量分类 219
8.8.2 非线性SVC 223
8.8.3 绘制SVM分类器对Iris数据集的分类效果图 225
8.8.4 支持向量回归 227
8.9 小结 229
第9章 数据分析实例——气象数据 230
9.1 待检验的假设:靠海对气候的影响 230
9.2 数据源 233
9.3 用IPython Notebook做数据分析 234
9.4 风向频率玫瑰图 246
9.5 小结 251
第10章 IPython Notebook内嵌JavaScript库D3 252
10.1 开放的人口数据源 252
10.2 JavaScript库D3 255
10.3 绘制簇状条状图 259
10.4 地区分布图 262
10.5 2014年美国人口地区分布图 266
10.6 小结 270
第11章 识别手写体数字 271
11.1 手写体识别 271
11.2 用scikit-learn识别手写体数字 271
11.3 Digits数据集 272
11.4 学习和预测 274
11.5 小结 276
附录A 用LaTeX编写数学表达式 277
附录B 开放数据源 287
· · · · · · (收起)
读后感
用户评价
这本书,嗯,让我着实体验了一把**云计算架构设计与成本优化**的复杂魅力。我原本以为云计算就是搭几个虚拟机那么简单,但这本书彻底颠覆了我的认知。它详细地梳理了AWS、Azure和Google Cloud Platform在Serverless、容器化(Kubernetes)以及数据库服务(NoSQL vs. SQL)上的核心差异和适用场景。最让我印象深刻的是关于**跨区域容灾和数据一致性**的讨论,作者提供了一个基于Paxos协议实现的分布式锁方案的伪代码,并分析了在极端网络分区情况下的理论极限,这深度已经超出了我预期的范围。而且,书中不仅关注技术实现,还非常务实地探讨了**FinOps(财务运营)**的实践,比如如何利用预留实例、竞价实例进行成本预测和控制,甚至给出了一个成熟的企业级资源标签策略模板。这本书的广度和深度兼备,更重要的是,它提供的不仅仅是“怎么做”,更多的是“为什么这么做”的哲学思考,对于架构师来说,是提升战略眼光的绝佳读物。
我最近在研读一本**大规模分布式事务处理与一致性协议**的专著,这本书对于任何处理高并发、高可用业务的后端架构师来说都是一份厚礼。它没有停留在理论层面,而是将精力集中在了**Google Spanner、CockroachDB**这类世界级系统的实现细节上。书中对**TrueTime API**的解析细致入微,解释了如何利用原子钟和GPS同步实现外部一致性,这对我理解时间在分布式系统中的核心作用至关重要。此外,关于**两阶段提交(2PC)、三阶段提交(3PC)以及Paxos/Raft算法**的对比分析,作者不仅阐述了它们各自的优缺点,还根据不同的业务延迟容忍度给出了明确的选型建议。特别是那几页关于**分布式死锁检测与恢复机制**的描述,简直是教科书级别的范例,它展示了如何在不牺牲太多性能的前提下,保障系统的健壮性。读完之后,我对如何设计一个既能保证强一致性,又能支持全球化部署的金融级系统,有了清晰的蓝图。
我最近在啃一本关于**高级嵌入式系统开发与实时操作系统(RTOS)**的教材,这本书的难度和实用性简直是成正比的。它并没有像许多入门书籍那样只介绍FreeRTOS的基础任务管理,而是直接切入了**中断服务程序(ISR)的设计规范、上下文切换的汇编级细节**,以及如何编写无锁(Lock-Free)的数据结构来提高多核环境下的并发性能。我花了整整一个周末才吃透了关于**时间触发调度(Time-Triggered Scheduling)**的理论,作者用一个实际的汽车电子控制单元(ECU)案例,将理论完美地落地。书中还引入了**硬件安全模块(HSM)的接口编程**,讲解了如何利用TrustZone等技术隔离关键代码和数据,这在物联网安全日益重要的今天,显得尤为关键。对于那些想深入到微控制器层级,进行性能调优和保证系统确定性的工程师来说,这本书的价值无可估量,读完后感觉自己对底层运行的掌控力提升了好几个档次。
天呐,我最近沉迷于一本关于**深度学习框架应用与实践**的书籍,简直是打开了新世界的大门!这本书的作者似乎对TensorFlow和PyTorch的底层原理有着极其深刻的理解,不仅仅是停留在API调用的层面,而是深入剖析了计算图的构建、梯度下降的优化策略,以及如何在GPU上实现高效的并行计算。我尤其欣赏其中关于**Transformer模型优化**的那一章,作者通过一个非常直观的例子,将复杂的注意力机制分解得清清楚楚,让我这个之前感觉晦涩难懂的概念豁然开朗。书中还花了大量篇幅讲解了如何使用**混合精度训练**来加速模型收敛,并且提供了大量可直接运行的代码示例,这对于我这种喜欢动手实践的读者来说,简直是福音。书中的排版也做得非常专业,公式和代码块的区分度很高,阅读体验极佳。我强烈推荐给所有希望从“模型使用者”进阶到“模型设计者”的工程师和研究人员,这本书绝对是案头必备的宝典,它教会了我如何真正驾驭这些强大的工具,而不是仅仅被它们牵着鼻子走。
说实话,我本来对**现代密码学原理与安全协议**这种听起来就很枯燥的理论书籍敬而远之,但这本书的叙事方式实在太吸引人了。它没有一开始就抛出复杂的数学公式,而是通过讲述**历史上的著名密码破解事件**(比如Enigma的破译过程),来引导读者理解对称加密和非对称加密的必要性。随后,它非常清晰地解释了**椭圆曲线密码学(ECC)**相比RSA在效率和安全性上的优势,并且用非常形象的比喻阐述了离散对数问题是如何保证其难解性的。最让我惊喜的是,书中专门开辟了一章来详细剖析**零知识证明(ZKP)**的几种主流实现,并讨论了它在去中心化身份认证中的前瞻性应用。这本书的作者绝对是位大师,他让复杂的数学概念变得触手可及,同时又保持了学术的严谨性,让读者在享受阅读快感的同时,真正掌握了现代信息安全的基石。
入门不错,翻译也挺好的
算是工具手册和说明吧,就像一本小词典,把基本的功能和方法介绍下。简单、简洁 翻了翻目录,基本上内容都知道是干嘛的,算是读过了吧,以后可以当工具书。
基本上就是《利用Python 进行数据分析》这本书的简版。缺少了时间序列章节。用的 Python3,所以比较方便。
2018-3-14 第一遍大致看看,打算第二遍一边看一边写代码记笔记。
基本上就是《利用Python 进行数据分析》这本书的简版。缺少了时间序列章节。用的 Python3,所以比较方便。