使用本书
如果之前从未使用过Python,那你可能需要先看看本书最后的附录部分,那是一个讲解Python的语法、语言特性以及内置数据结构(如元组、列表和字典等)的简单教程。这部分内容可以看做本书其他内容的预备知识。
本书首先讲解的是IPython环境,然后简单地介绍了NumPy的关键特性,NumPy其他的高级功能则在本书最后一章讲解。然后我介绍了pandas。本书其余部分则介绍了综合运用pandas、NumPy和matplotlib(用于可视化)进行数据分析的相关知识。我尽量以增量的形式组织各种材料,但偶尔还是会出现一些跨章节的知识点。
各章的数据文件及相关材料存放在GitHub上译注7:
- http://github.com/pydata/pydata-book
我强烈建议你下载这些数据,然后用各章所介绍的工具重写示例代码。我非常欢迎大家为本书的git库提供文稿、脚本、IPython笔记本以及其他各种有用的资源。
代码示例
本书大部分代码示例的输入形式和输出结果都会按照其在IPython shell中执行时的样子进行排版。
- In [5]: code
- Out[5]: output
有时,为了简洁明了,多个代码示例将会并排显示。这些代码示例应该从左到右进行阅读,且应该分别执行。
- In [5]: code In [6]: code2
- Out[5]: output Out[6]: output2
示例数据
各章的示例数据都存放在GitHub上:http://github.com/pydata/pydata-book。下载这些数据的方法有二:使用git版本控制命令行程序;直接从网站上下载该GitHub库的zip文件。
为了让所有示例都能重现,我尽量使其包含所有必需的东西,但仍然可能会有一些错误或遗漏。如果出现这种情况的话,请给我发邮件:wesmckinn@gmail.com。
引入惯例
Python社区已经广泛接受了一些常用模块的命名惯例:
- import numpy as np
- import pandas as pd
- import matplotlib.pyplot as plt
也就是说,当你看到np.arange时,就应该想到它引用的是NumPy中的arange函数。这样做的原因是:在Python软件开发过程中,不建议直接引入类似NumPy这种大型库的全部内容(from numpy import *)。
行话
由于你可能不太熟悉书中使用的一些有关编程和数据科学方面的常用术语,所以我在这里先给出其简单定义:
数据规整(Munge/Munging/Wrangling)译注8
指的是将非结构化和(或)散乱数据处理为结构化或整洁形式的整个过程。这几个词已经悄悄成为当今数据黑客们的行话了。Munge这个词跟Lunge押韵。
伪码(Pseudocode)
算法或过程的“代码式”描述,而这些代码本身并不是实际有效的源代码。
语法糖(Syntactic sugar)
这是一种编程语法,它并不会带来新的特性,但却能使代码更易读、更易写。
译注7:拿到书就马上去下载,一来是防止链接不可用,二来是数据有点大,宽带较小的话……
译注8:本来想不翻译的,但是原文中这几个到处混用,搞得我强迫症爆发,直接全翻译成“数据规整”。