SciPy
SciPy是一组专门解决科学计算中各种标准问题域的包的集合,主要包括下面这些包:
- scipy.integrate:数值积分例程和微分方程求解器。
- scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能。
- scipy.optimize:函数优化器(最小化器)以及根查找算法。
- scipy.signal:信号处理工具。
- scipy.sparse:稀疏矩阵和稀疏线性系统求解器。
- scipy.special:SPECFUN(这是一个实现了许多常用数学函数(如伽玛函数)的Fortran库)的包装器。
- scipy.stats:标准连续和离散概率分布(如密度函数、采样器、连续分布函数等)、各种统计检验方法,以及更好的描述统计法。
NumPy和SciPy结合使用,便形成了一个相当完备和成熟的计算平台,可以处理多种传统的科学计算问题。
scikit-learn
2010年诞生以来,scikit-learn成为了Python的通用机器学习工具包。仅仅七年,就汇聚了全世界超过1500名贡献者。它的子模块包括:
- 分类:SVM、近邻、随机森林、逻辑回归等等。
- 回归:Lasso、岭回归等等。
- 聚类:k-均值、谱聚类等等。
- 降维:PCA、特征选择、矩阵分解等等。
- 选型:网格搜索、交叉验证、度量。
- 预处理:特征提取、标准化。
与pandas、statsmodels和IPython一起,scikit-learn对于Python成为高效数据科学编程语言起到了关键作用。虽然本书不会详细讲解scikit-learn,我会简要介绍它的一些模型,以及用其它工具如何使用这些模型。
statsmodels
statsmodels是一个统计分析包,起源于斯坦福大学统计学教授Jonathan Taylor,他设计了多种流行于R语言的回归分析模型。Skipper Seabold和Josef Perktold在2010年正式创建了statsmodels项目,随后汇聚了大量的使用者和贡献者。受到R的公式系统的启发,Nathaniel Smith发展出了Patsy项目,它提供了statsmodels的公式或模型的规范框架。
与scikit-learn比较,statsmodels包含经典统计学和经济计量学的算法。包括如下子模块:
- 回归模型:线性回归,广义线性模型,健壮线性模型,线性混合效应模型等等。
- 方差分析(ANOVA)。
- 时间序列分析:AR,ARMA,ARIMA,VAR和其它模型。
- 非参数方法: 核密度估计,核回归。
- 统计模型结果可视化。
statsmodels更关注与统计推断,提供不确定估计和参数p-值。相反的,scikit-learn注重预测。
同scikit-learn一样,我也只是简要介绍statsmodels,以及如何用NumPy和pandas使用它。
除了在网上搜索,各式各样的科学和数据相关的Python邮件列表是非常有帮助的,很容易获得回答。包括:
- pydata:一个Google群组列表,用以回答Python数据分析和pandas的问题;
- pystatsmodels: statsmodels或pandas相关的问题;
- scikit-learn和Python机器学习邮件列表,scikit-learn@python.org;
- numpy-discussion:和NumPy相关的问题;
- scipy-user:SciPy和科学计算的问题;
因为这些邮件列表的URLs可以很容易搜索到,但因为可能发生变化,所以没有给出。
每年,世界各地会举办许多Python开发者大会。如果你想结识其他有相同兴趣的人,如果可能的话,我建议你去参加一个。许多会议会对无力支付入场费和差旅费的人提供财力帮助。下面是一些会议:
- PyCon和EuroPython:北美和欧洲的两大Python会议;
- SciPy和EuroSciPy:北美和欧洲两大面向科学计算的会议;
- PyData:世界范围内,一些列的地区性会议,专注数据科学和数据分析;
- 国际和地区的PyCon会议(http://pycon.org有完整列表) 。
网友评论