用于数据科学的六种必备Python工具


用于数据科学的六种必备Python工具

文章插图
如果您想使用甚至掌握数据分析技能的话,Python一定是您的最佳选择 。它不但容易被学习,而且具有广泛且活跃的社区支持 。目前,大多数数据科学库、以及机器学习框架,都能够提供Python接口 。
在过去的数月中,不少用于数据科学的Python项目,都相继发布了针对主要功能的更新版本 。它们有些是关乎实际数字运算;有些则是让开发者能够更轻松、更快速地编写出针对数据科学的任务代码 。下面,让我们来讨论其中最为典型的6种Python工具 。
1.SciPy1.7由于NumPy能够为Python用户提供快速而强大的数学库,因此SciPy使用NumPy来为常见的、面向数学和数据科学的编程任务提供各种代码库 。其中包括:线性代数、统计工程、以及信号处理等方面 。
SciPy如何协助数据科学
作为便捷且被广泛使用的数学和统计工具,SciPy长期以来停留在1.0版本上 。当然,该版本具有很强的跨版本向后兼容性 。
根据其核心开发人员--Ralf Gommers的说法,SciPy项目的1.0版不但整合了项目的治理和管理方式,而且包含了一个与macOS和windows的不同的持续集成过程,以及对预构建的Windows二进制文件的适当支持 。这就意味着,Windows用户可以直接使用SciPy,而无需考虑额外的环节 。
自2017年发布1.0版本以来,该项目已经交付了七个主要版本,它们持续在如下方面进行改进与优化:
  • 放弃了对于Python 2.7的支持,跟进了对应的代码库 。
  • 不断改进和更新SciPy的子模块,使之具有更多的功能、更好的文档、以及更多的新算法 。例如,新的快速傅立叶变换模块(fast Fourier transform module,)具有更好性能、以及更友好的界面 。
  • 更好地支持LAPACK(Linear Algebra PACKage,线性代数包,是一个用于解决常见线性方程问题的Fortran包 。请参见--http://performance.netlib.org/lapack/)中的各个函数 。
  • 能够更好地兼容替代Python运行时的PyPy(包括了一个可用于更快地长期运行代码的JI编译器,请参见--https://www.infoworld.com/article/3385127/what-is-pypy-faster-python-without-pain.html) 。
从哪里下载SciPy
我们既可以从GitHub的链接处获得源代码,又可以从Python Package Index的链接处,下载SciPy的二进制文件,然后在命令行中输入“pip install sciPy”以完成安装 。
2.Numba 0.53.0Numba允许通过LLVM(Low Level Virtual Machine,低级虚拟机)编译器框架,将Python函数或模块编译为汇编语言,以便随时运行Python程序 。在此方面,Numba与Cython(不但可以被Python调用,而且能够让被加速的代码更易于分发给第三方,下文会详细讨论)极其相似 。当然,Numba会更易于使用 。
【用于数据科学的六种必备Python工具】Numba如何协助数据科学
Numba帮助数据科学家的方式主要体现在,它加速了编写Python的各项操作 。也就是说,您可以使用纯Python,对项目进行原型设计,然后使用Numba对其进行注释,以便快速地投入生产环境 。
同时,Numba也可以快速地运行在那些为机器学习和数据科学应用所构建的硬件上 。Numba的早期版本曾可以支持编译出CUDA(Compute Unified Device Architecture)加速代码 。不过其最新版本则采用了新的、更为高效的GPU代码缩减算法 。它不但能够加快编译速度,还支持Nvidia CUDA和AMD ROCm的API 。
此外,Numba还可以通过优化JIT编译函数,以实现跨CPU内核的并行执行 。当然,您的代码需要添加一些额外的语法,才能正确地完成 。
从哪里下载Numba
我们既可以从GitHub的链接处获得源代码,又可以在Python Package Index的链接处下载Numba,然后在命令行中输入“pip install numba”以完成安装 。其预构建的二进制文件可以支持Windows、MacOS、以及通用的linux 。此外,它还被当作了Anaconda Python发行版的一部分 。用户可以在命令行中输入“conda install numba”以完成安装 。
3.Cython3.0(beta版)Cython是将Python代码转换为可以更快地运行、大数量级的C语言代码 。这种转换对于重数学量(math-heavy)的代码、或是在各种紧密循环中运行的代码,都非常方便 。值得一提的是,这两种情况在为工程、科学、以及机器学习编写的Python程序中,也是十分常见的 。
Cython如何协助数据科学
从本质上说,Cython代码实际上是带有一些额外语法的Python代码 。这些Python代码不但可以被Cython编译成C语言,而且能够通过使用Cython的类型注释,让其性能得到了几十倍、甚至几百倍的改进 。
在Cython 3出现之前,Cython使用的是0.xx的版本编号方案 。不过,Cython 3不再支持Python 2的语法了 。尽管Cython 3目前仍处于测试阶段,但是已有Cython的拥护者强烈建议人们使用该版本,去代替其早期的版本 。同时,鉴于Cython的许多(尽管不是全部)函数都可以使用与Python完全兼容的语法,因此Cython 3强烈建议用户更多地去使用“纯Python”模式 。


推荐阅读