本书代码
本书使用的代码和数据都可从GitHub(https://github.com/AllenDoweny/ThinkStats2)下载。Git是一个版本管理系统,可以对项目文件进行跟踪。受Git管理的文件集称为代码库(repository)。GitHub是一项托管服务,可以存储Git代码库,并提供一个便于使用的Web接口。
我的GitHub主页提供以下几种使用代码的方法。
•你可以点击Fork按钮,在GitHub上创建该代码库的副本。如果你还没有GitHub账号,就需要创建一个。创建副本之后,你就在GitHub上拥有了自己的代码库,可以跟踪学习本书时编写的代码。之后你可以复制这个代码库,即将文件复制到自己的计算机上。
•或者,你也可以复制我的代码库。这一操作不需要GitHub账号,但是你对代码所做的修改无法写回GitHub。
•如果你完全不想使用Git,那么可以点击GitHub页面右下角的按钮,下载文件的Zip包。
本书所有代码都无需翻译即可在Python 2和Python 3中直接运行。
编写本书代码时,我使用的是Continuum Analytics的Anaconda,这是一个免费的Python版本,其中带有运行本书代码所需的所有软件包(还有很多其他包)。Anaconda很容易安装。默认情况下,Anaconda进行用户级而非系统级安装,因此不需要管理员权限。Anaconda同时支持Python 2和Python 3,你可以从Continuum(http://continuum.io/downloads)进行下载。
如果你不想使用Anaconda,那么需要安装以下软件包。
•pandas,进行数据的表示和分析。下载地址为:http://pandas.pydata.org/。
•NumPy,支持基本的数字运算。下载地址为:http://www.numpy.org/。
•SciPy,进行科学计算,包括统计运算。下载地址为:http://www.scipy.org/。
•StatsModels,进行回归分析和其他统计分析。下载地址为:http://statsmodels.sourceforge.net/。
•matplotlib,支持可视化。下载地址为:http://matplotlib.org/。
虽然这些都是常用软件包,但并不是所有的Python安装都包含这些包,而且在有些环境下很难进行安装。如果你无法安装这些包,我强烈建议你使用Anaconda,或者包含这些包的其他Python版本。
当你复制完代码库或者将Zip包解压后,会得到一个名为ThinkStats2/code的文件夹,其中有一个nsfg.py文件。运行nsfg.py会读取一个数据文件,运行一些测试,并输出一条消息,如“All tests passed”。如果你得到的是import error,可能是因为缺少某些必要的软件包。
本书的大部分练习都使用Python脚本,但也有一些使用IPython记事本。如果你之前没有用过IPython记事本,可以访问文档http://ipython.org/ipython-doc/stable/notebook/notebook.html得到帮助。
本书读者应该熟悉Python的核心功能,包括面向对象的特征,但无需具备pandas、NumPy和SciPy知识。如果你已经熟知这些模块,可以跳过一些相关小节。
本书读者应该了解基本的数学知识,例如对数和求和。本书中有几处会涉及微积分概念,但你无需进行微积分运算。
如果你从未学习过统计学,本书会是一本很好的入门教材。如果你学习过传统的统计学课程,那么我希望本书能够修正你过去接受的一些错误观点。
一
Allen B. Downey是一位计算机科学教授,执教于美国马萨诸塞州尼德姆的富兰克林欧林工程学院。