1.6 快速浏览本书

如果你从未使用Python编程,你需要在第2章和第3章上花些时间,这两章我提供了一份关于Python语言特征、IPython命令行和Jupyter notebook的教程。这些内容是本书后续章节所需的预备知识。如果已经有Python经验,你可以跳过这两章。

下一章,我会简单介绍NumPy的关键特性,并在附录A中提供高级的NumPy使用技术。之后,我会介绍pandas,并将本书后续内容集中于应用pandas、NumPy和matplotlib(可视化)进行数据分析的主题上。我已经尽可能地按照递增的方式来组织全书的内容,但在部分章节中偶尔还是会有些细微的交叉,比如一些还不需要引入概念的独立场景。

尽管读者们可能会有很多不同的工作目的,但工作任务大体上会分为以下几个部分。


与外部世界交互

读写各种格式的文件以及数据存储


准备

对分析数据进行清洗、处理、联合、正态化、重组、切片、切块和转换


转换

将数学或统计操作应用到数据集的分组上以产生新的数据集(例如通过分组参数对一张大表进行聚合)


建模和计算

将数据接入到统计模型、机器学习算法和其他计算工具上


演示

创建动态或静态的图形可视化或文字概述

1.6.1 代码示例

本书大部分代码示例会按照IPython或Jupyter notebook中的形式用输入In和输出Out展现:

In [5]: CODE EXAMPLE
Out[5]: OUTPUT

当你看到这样的代码示例时,其用意就是让你将示例代码输入到In区,然后按下回车键执行代码(Jupyter中按下shift-Enter),然后输出结果展现在Out区。

1.6.2 示例数据

每章的示例数据托管在GitHub仓库(http://github.com/wesm/pydata-book)上。你可以在命令行中使用Git版本控制系统下载这些数据,也可以直接从GitHub网站上下载数据的zip打包文件。如果你遇到了问题,请在我个人网站(http://wesmckinney.com)上获取关于如何获得本书资料的最新指引。

我已经尽了最大的努力保障这包含了复现示例所需的所有事项,但可能还有一些错误或遗漏。如果发现了错误或遗漏,请给我发邮件:book@wesmckinney.com。报告本书错误的最佳途径位于O'Reilly网站上的勘误页(http://bit.ly/pyDataAnalysis_errata)。

1.6.3 导入约定

Python社区对一些常用模块采用了命名约定:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import statsmodels as sm

这意味着,当你看到np.arrange时,它引用的是NumPy中的arrange函数。这是因为一次性从像NumPy这样的大包中引入所有内容(from numpy import *)在Python软件开发中被认为是拙劣实践。

1.6.4 术语

我会使用编程和数据科学中的一些术语,这些术语你可能不熟悉,以下是一些简单的定义。


处理/处置/规整(munge/munging/wrangling)

描述的是将非结构化或者同时又很凌乱的数据整理成结构化、清晰形式的整个过程。时下,这个词在很多数据骇客中流传。在英文中,“Munge”(处理)和“grunge”(垃圾)谐音。


伪代码

用一种类似代码的形式描述算法或者过程,而事实上又不是实际有效的源代码。


语法糖

并不增加新特性,但便利于代码编写的编程语法。