【.com快译】如果你想使用甚至掌握数据分析技能,Python一定是你的最佳选择。它不仅易于学习,而且还拥有广泛而活跃的社区支持。目前,大多数数据科学库以及机器学习框架都提供Python接口。在过去的几个月里,许多用于数据科学的Python项目都发布了主要功能的更新版本。有些是关于实际的数字运算;其他的则是让开发人员更容易、更快地为特定于数据科学的任务编写代码。下面,让我们来讨论一下最典型的6个Python工具。1.SciPy1.7由于NumPy可以为Python用户提供快速而强大的数学库,SciPy使用NumPy为常见的、数学的和面向数据科学的编程任务提供各种代码库。其中包括:线性代数、统计工程和信号处理。SciPy如何助力数据科学作为一种便捷且应用广泛的数学和统计工具,SciPy长期以来一直停留在1.0版本上。当然,这个版本具有很强的跨版本向后兼容性。据其核心开发者RalfGommers介绍,SciPy项目的1.0版本不仅集成了项目的治理和管理,还包括与MacOS和Windows不同的持续集成过程,以及对预构建Windows二进制文件的支持。适当的支持。这意味着Windows用户可以直接使用SciPy,而无需考虑额外的链接。自2017年发布1.0版本以来,该项目已经交付了7个主要版本,并在以下方面不断完善和优化:放弃了对Python2.7的支持,并跟进了相应的代码库。使用更多功能、更好的文档和更多新算法不断改进和更新SciPy的子模块。例如,一个新的快速傅里叶变换模块(fastFouriertransformmodule)具有更好的性能和更友好的界面。更好地支持LAPACK(LinearAlgebraPACKage,线性代数包,是一个用于求解常见线性方程问题的Fortran包。各种函数请参考--http://performance.netlib.org/lapack/)。更好地兼容PyPy替代Python运行时(包括用于更快地长时间运行代码的JI编译器,请参阅--https://www.infoworld.com/article/3385127/what-is-pypy-faster-python-without-pain.html)。从哪里下载SciPy我们可以从GitHub链接获取源码,或者从PythonPackageIndex链接,下载SciPy二进制文件,然后在命令行输入“pipinstallsciPy”即可完成安装。2.Numba0.53.0Numba允许通过LLVM(LowLevelVirtualMachine)编译器框架将Python函数或模块编译成汇编语言,从而可以随时运行Python程序。在这方面,Numba与Cython非常相似(不仅可以被Python调用,还可以让加速后的代码更容易分发给第三方,下面详细讨论)。当然,Numba会更容易使用。Numba如何帮助数据科学Numba帮助数据科学家的主要方式是加快编写Python的操作。也就是说,您可以使用纯Python为您的项目制作原型,然后使用Numba对其进行注释以快速投入生产。同时,Numba还可以在为机器学习和数据科学应用构建的硬件上快速运行。Numba的早期版本可以支持编译CUDA(ComputeUnifiedDeviceArchitecture)加速代码。然而,它的最新版本使用了一种新的、更高效的GPU代码减少算法。它不仅加快了编译速度,还支持NvidiaCUDA和AMDROCmAPI。此外,Numba还可以优化JIT编译函数,实现跨CPU内核的并行执行。当然,您的代码需要添加一些额外的语法才能正确执行。从哪里下载Numba我们既可以从GitHub链接获取源码,也可以从PythonPackageIndex链接下载Numba,然后在命令行输入“pipinstallnumba”即可完成安装。它的预构建二进制文件通常支持Windows、MacOS和Linux。此外,它作为AnacondaPython发行版的一部分包含在内。用户可以在命令行输入“condainstallnumba”完成安装。3.Cython3.0(测试版)Cython将Python代码转换成运行速度更快、指令量大的C语言代码。这种转换对于数学运算量大的代码或在各种紧密循环中运行的代码非常方便。值得一提的是,这两种情况在为工程、科学和机器学习编写的Python程序中也很常见。Cython如何帮助数据科学从本质上讲,Cython代码实际上是带有一些额外语法的Python代码。这些Python代码不仅可以被Cython编译成C语言,而且还可以通过Cython的类型注解将其性能提高几十倍甚至上百倍。在Cython3之前,Cython使用0.xx的版本编号方案。但是,Cython3不再支持Python2语法。尽管Cython3仍处于测试阶段,但现有的Cython拥护者强烈建议人们使用此版本而不是其早期版本。同时,鉴于Cython的许多(虽然不是全部)功能可以使用与Python完全兼容的语法,Cython3强烈建议用户使用更多的“纯Python”模式。同时,Cython还支持与IPython和Jupyter笔记本的集成。Cython编译的代码可以通过内联注释的方式在Jupyternotebook中使用,就像Python代码一样。此外,您可以在启用配置文件引导优化的情况下为Jupyter编译Cython模块。通过这种方式构建的模块可以根据其生成的分析信息进行各种快速编译和优化。值得注意的是,此方法只有在与GCC编译器一起使用时才能被Cython使用。不过微软的VC环境还不支持这个。从哪里下载Cython我们既可以从GitHub链接获取源码,也可以从PythonPackageIndex链接下载Cython,然后在命令行输入“pipinstallcython”即可完成安装。其二进制文件可以支持32位和64位Windows、通用Linux和MacOS。值得注意的是,在使用Cython之前,必须在您的系统平台上安装Coracle编译器。4.Dask2021.07.0近年来,虽然我们的硬件处理能力比以往任何时候都强大,但关键问题是我们将如何通过跨越多个CPU核心、物理处理器和计算节点来实现最高性能。高效完成与数据科学相关的计算任务。为此,Dask工具能够接受Python作业并有效地跨多个系统调度它。由于用于启动Dask作业的语法与用于在Python中执行其他所有操作的语法几乎相同,因此在使用Dask时我们几乎不需要对现有代码进行任何更改。Dask如何帮助数据科学Dask为Python中许多流行的机器学习和科学计算库提供了接口的本机版本。比如它的DataFrame对象可以和Pandas库中的一样,它的Array对象可以和NumPy的保持一致。可以看出,只需要修改几行代码,Dask就可以快速兼容现有代码。同时,Dask不仅允许并行编写纯Python作业,其Bag等对象类型还可以优化map、filter和groupby等通用Python对象集合的操作。在哪里下载Dask我们既可以从GitHub链接获取源码,也可以从PythonPackageIndex链接下载Cython,然后在命令行输入“pipinstalldask”即可完成安装。此外,作为AnacondaPython发行版的一部分,用户还可以在命令行输入“condainstalldask”来完成安装。5.Vaex4.30根据NumPy或Pandas的数据帧格式,Vaex允许用户对大规模数据集(如数十亿行数据)进行惰性操作,具有零数据复制、最小内存占用和内置可视化工具等,高效完成各项操作。Vaex如何帮助数据科学在Python中,处理大型数据集,尤其是当只涉及数据的某个子集(例如,表中的一列)时,通常会消耗大量内存以及处理能力。而Vaex则可以根据实际需要以按需方式进行计算,从而充分利用有限的可用计算资源。在哪里下载Vaex我们可以在PythonPackageIndex中的链接下载Cython,然后在命令行输入“pipinstallvaex”即可完成安装。值得注意的是,为了获得最佳效果,您可以在虚拟环境中安装Vaex,也可以直接使用Python的Anaconda发行版。6.IntelSDC作为高性能分析工具包,Intel的可扩展数据帧编译器(ScalableDataframeCompiler,SDC)是一个数据分析和加速集群机器学习的实验项目。它使用来自OpenMPI项目的mpirun实用程序将Python的一个子集编译为代码。这些代码可以跨集群自动并行化。英特尔SDC如何助力数据科学作为一个用Python编写的基于编译器的大数据框架,HPAT使用了前面提到的Numba。但与Cython不同的是,它不会按原样编译Python。相反,它使用Python语言的一个受限子集:NumPy数组和Pandas数据帧,并优化它们以跨多个节点运行。与Numba类似,HPAT自带一个@jit装饰器(decorator),它可以将特定的功能转换成优化后的代码。此外,它还包含一个本地I/O模块,可用于读取和写入HDF5(而非HDFS)文件。哪里可以下载英特尔SDC我们可以从GitHub上的链接获取源代码。但是,SDC没有提供相应的二进制文件。原标题:数据科学的6个基本Python工具——现已改进,作者:SerdarYegulalp
