[51CTO.com 快译] 过去五年人们对数据科学的兴趣显著上升. 尽管有许多编程语言适合数据科学和机器学习, 但 Python 是最受欢迎的.
由于它是机器学习的首选语言, 本文介绍了以 Python 为中心的十个基本的数据科学软件包, 包括最受欢迎的机器学习软件包.
Scikit-Learn
Scikit-Learn 是一个基于 SciPy 和 NumPy 的 Python 机器学习模块. 它由 David Cournapeau 开发, 起初是谷歌的一个 "编程夏天" 项目. 从那时起, 它已发展到 20000 多人次提交和 90 多个版本. 摩根大通和 Spotify 等公司将它用于各自的数据科学工作中.
由于 Scikit-Learn 的学习曲线很平缓, 连企业的业务人员也能使用它. 比如说, Scikit-Learn 官网上的一系列教程 (https://scikit-learn.org/stable/auto_examples/index.html#examples-based-on-real-world-datasets) 向你展示了如何分析现实世界的数据集. 如果你是初学者, 想学习机器学习库, Scikit-Learn 就是入门之选.
其要求如下:
Python 3.5 或更高版本
NumPy 1.11.0 或更高
SciPy 0.17.0 或更高
PyTorch
PyTorch 擅长两件事. 首先, 它使用强大的 GPU 加速张量计算. 其次, 它在基于磁带的 autograd 系统上构建动态神经网络, 从而允许重用和更高的性能. 如果你是学者或工程师, 想要简单易学的软件包来完成这两件事, PyTorch 是适合你的选择.
在特定情况下, PyTorch 尤为出色. 比如, 如上所述, 你想通过使用 GPU 更快地计算张量? 那就使用 PyTorch, 因为 NumPy 无法做到这一点. 想使用 RNN 进行语言处理? 那就使用 PyTorch, 因为它拥有运行时定义的功能. 或者你想使用深度学习但你只是初学者? 那就使用 PyTorch, 因为 Scikit-Learn 不适合深度学习.
PyTorch 的要求取决于你的操作系统. 安装比 Scikit-Learn 稍微复杂一些. 我建议使用 "Get Started" 页面 (https://pytorch.org/get-started/locally/) 作为指导. 它通常需要以下:
Python 3.6 或更高版本
Conda 4.6.0 或更高版本
Caffe
Caffe 是最快实现卷积网络的工具之一, 因此非常适合图像识别. 它以处理图像见长.
贾扬清在加州大学伯克利分校攻读博士学位时开始开发 Caffe. 它采用 BSD 2-Clause 许可证来发布, 被誉为是市面上性能最高的深度学习框架之一. 据官网称, Caffe 的图像处理速度相当惊人, 声称 "使用单单一个英伟达 K40 GPU 每天就可以处理 6000 余万个图像."
我要强调一点, 尽管学习曲线仍然相对平缓, 但 Caffe 假设你至少具备机器学习方面的中级知识.
与 PyTorch 一样, 要求取决于你的操作系统. 在此查看安装指南(http://caffe.berkeleyvision.org/installation.html). 可以的话, 我建议你使用 Docker 版本, 以便马上可以使用. 强制性依赖项如下:
CUDA for GPU 模式(https://developer.nvidia.com/cuda-zone)
建议使用库版本 7 或更高版本以及最新的驱动程序版本, 但 6 系列版本也很好
5.5 和 5.0 版本兼容, 但被认为是旧版本
通过 ATLAS,MKL 或 OpenBLAS 进行 BLAS(http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)
Boost 1.55 或更高版本(http://www.boost.org/)
TensorFlow
由于一些很充分的原因, TensorFlow 是最著名的机器学习库之一. 它擅长使用数据流图进行数值计算.
TensorFlow 最初由谷歌 Brain 开发, 是开源的. 面对一系列任务, 它使用数据流图和可微分编程, 使其成为有史以来最灵活, 最强大的机器学习库之一.
如果你需要快速处理大型数据集, 这是不容忽视的库.
最新的稳定版本是 v1.13.1, 但新的 v2.0 现处于 beta 测试中.
Theano
Theano 是最早的用于深度学习开发的开源软件库之一, 最适合用于高速计算.
虽然 Theano 宣布在 2017 年发布 v1.0 之后停止主要开发, 但你仍可以对其进行历史研究. 它之所以跻身本文十大 Python 数据科学软件包行列, 是由于如果你熟悉它, 会大致了解它的创新后来如何演变成了如今你在激烈竞争的库中看到的功能.
Pandas
Pandas 是一个用 Python 编写的强大而灵活的数据分析库. 虽然不是严格意义上的机器学习库, 但它非常适合用于针对大型数据集的数据分析和处理. 尤其是, 我喜欢将其用于其数据结构(比如 DataFrame), 时间序列操纵和分析以及数字数据表. 大企业和初创公司的许多业务员工可以轻松地拿来 Pandas 进行分析. 此外, 它非常易于上手, 在数据分析功能方面不输给与之竞争的库.
如果你想使用 Pandas, 需要以下:
Setuptools 版本 24.2.0 或更高版本
NumPy 版本 1.12.0 或更高版本
Python dateutil 2.5.0 或更高版本
用于跨平台时区计算的 pytz
Keras 为快速实验而设计. 它也可以在 TensorFlow 等其他框架上运行. 作为深度学习库, Keras 以轻松快速地制作原型而著称.
Keras 因易于使用的 API 而在深度学习库爱好者中备受欢迎. Jeff Hale 进行了一番整理, 对主要的深度学习框架进行了排名, Keras 相比毫不逊色.
Keras 的唯一要求是要有三种后端引擎之一: 比如 TensorFlow,Theano 或 CNTK.
NumPy
NumPy 是使用 Python 进行科学计算所需的基本软件包. 对于想要一种易于使用的 Python 库进行科学计算的研究人员来说, 这是很好的选择. 实际上, NumPy 正是为此目的设计的. 它使数组计算变得容易很多.
最初, NumPy 的代码是 SciPy 的一部分. 然而, 需要在工作中使用数组对象的科学家必须安装庞大的 SciPy 软件包. 为了避免这种情况, 一个新的软件包与 SciPy 分开来, 名为 NumPy.
如果你想使用 NumPy, 需要 Python 2.6.x,2.7.x,3.2.x 或更高版本.
Matplotlib
Matplotlib 是 Python 2D 绘图库, 可轻松创建跨平台的图表和图形.
到目前为止, 我们介绍了许多机器学习, 深度学习甚至快速计算框架. 不过就数据科学而言, 你还需要绘制图形和图表. 谈到数据科学和 Python, 会立即想到用于绘图和数据可视化的 Matplotlib. 它很适合创建出版质量的图表.
为了获得长期支持, 当前的稳定版本是 v2.2.4, 但你可以下载 v3.0.3 以获取最新功能. 它确实要求你拥有 Python 3 或更新版本, 因为已停止对 Python 2 的支持.
SciPy
SciPy 是一个庞大的数据科学软件包库, 主要面向数学, 科学和工程. 如果你是数据科学家或工程师, 想要在运行技术和科学计算时一应俱全, SciPy 正合你的心意.
由于 SciPy 建立在 NumPy 上, 它有相同的目标受众. 它有大量的子软件包, 每个子软件包专注于特定领域, 比如傅立叶变换, 信号处理, 优化算法, 空间算法和最近邻. 实际上, 这是典型数据科学家所需的配套 Python 库.
就需求而言, 如果你需要 SciPy, 还需要 NumPy.
以上就是与数据科学有关的 10 种主要的 Python 库.
原文标题: Ten essential data science packages for Python, 作者: TJ Simmons
来源: http://www.tuicool.com/articles/JfIBNbA