这本书的英文版github仓库:pydata-book
作者Wes McKinney是pandas的创作者,所以书中关于pandas的讲解也是最实用的部分。我也直接联系过了Wes本人,这个笔记不会有任何版权问题,当然,也不会用于任何商业用途。
这本书自2013年第一版发行后,就广受好评。第一版的时候作者用的是Python2,不过随着Python2的维护年限将近(2020),以及Python3的推广,整个社群向Python3转变已经成为不可扭转的趋势。所以在第二版里,作者使用了Python3.6。而我实际写的代码则是基于Python3.5,使用上没有任何差别。
2017第二版主要更新:
- 所有代码,包括Python教程,都升级到了Python3.6(第一版用的是Python2.7)
- 更新了Python的安装介绍。这次改用Anaconda Python发行版,以及其他一些需要的Python包
- 使用了最新的2017版pandas
- 新增了一章,用来介绍pandas的高级应用工具,和其他一些有用的小贴士
- 简单介绍了如何使用statsmodels和scikit-learn
本来很早就知道这本书了,直到最近才终于有时间,打算把这本书完整过一遍,顺便用jupyter做成笔记方便以后查阅。结果我在看第一版第三章的时,突然发现作者已经在2017年推出了第二版,不过暂时还没有中文版。想了想反正也要做成笔记,索性直接把英文翻译成中文,做一个简洁版的Notebook版本分享出来好了,也算是为开源世界做点小贡献。
在写笔记的时候,我尽量写中文,不过有一些专有名字我是直接写英文,然后配上中文翻译,毕竟有时候知道英文单词的话查找英文的文档也方便一些,而且我相信这样做对提升中文和英文专业名字的对照关系有帮助。毕竟在程序员的世界里,不懂英语会很艰难,即使是一些简单的单词,也是我们走向新世界的起点。
另外我并不是逐字逐句翻译,因为这样翻译出来的效果洋味十足,很难懂。我尽可能按方便理解的方式进行翻译,其他一些没有用的话我不进行翻译。这本书中的翻译并不是经过特别考究的,内容上也会有很多个人的解释。推荐大家等正式的中文版推出后进行购买,翻译质量肯定会比我的有保障。不过因为是一个人在翻译整本书,工作量比较大,难免有错误和疏漏的地方,或者有读起来觉得奇怪的地方,如果有发现的话不要客气,请尽管说出来,欢迎任何改进和Pull Request。
-
Chapter 3: Built-in Data Structures, Functions, and Files (内建数据结构,函数和文件)
-
Chapter 4: NumPy Basics: Arrays and Vectorized Computation(NumPy基础:数组和向量化计算)
- 4.1 The NumPy ndarray: A Multidimensional Array Object(ndarray: 多维数组对象)
- 4.2 Universal Functions: Fast Element-Wise Array Functions(通用函数:快速点对点数组函数)
- 4.3 Array-Oriented Programming with Arrays(数组导向编程)
- 4.4 File Input and Output with Arrays(通过数组来进行文件的输入和输出)
- 4.5 Linear Algebra (线性代数)
- 4.6 Pseudorandom Number Generation(伪随机数生成)
- 4.7 Example Random Walks(例子:随机漫步)
-
Chapter 6: Data Loading, Storage, and File Formats(数据加载,存储,文件格式)
-
Chapter 8: Data Wrangling: Join, Combine, and Reshape(数据加工:加入, 结合, 变型)
-
- 11.1 Date and Time Data Types and Tools(日期和时间数据类型及其工具)
- 11.2 Time Series Basics(时间序列基础)
- 11.3 Date Ranges, Frequencies, and Shifting(日期范围,频度,和位移)
- 11.4 Time Zone Handling(时区处理)
- 11.5 Periods and Period Arithmetic(周期和周期运算)
- 11.6 Resampling and Frequency Conversion(重采样和频度转换)
- 11.7 Moving Window Functions(移动窗口函数)
-
Chapter 13: Introduction to Modeling Libraries in Python(Python中建模库的介绍)
-
Appendix A: Advanced NumPy(高级NumPy用法)
- A.1 ndarray Object Internals(ndarray对象的内部)
- A.2 Advanced Array Manipulation(数组操作的高级用法)
- A.3 Broadcasting(广播)
- A.4 Advanced ufunc Usage(高级ufunc用法)
- A.5 Structured and Record Arrays(结构化数组和记录数组)
- A.6 More About Sorting(关于排序)
- A.7 Writing Fast NumPy Functions with Numba(利用Numba构建快速的NumPy函数)
- A.8 Advanced Array Input and Output(数组输入和输出的高级用法)
- A.9 Performance Tips(性能贴士)
The code in this repository, including all code samples in the notebooks listed above, is released under the MIT license. Read more at the Open Source Initiative.