一名Python程序员会用哪些好用的工具?
在人工智能和数据科学领域,Python是最受欢迎的语言之一,近年来更是发展迅猛,也是各大编程语言榜单中的香饽饽。无疑,2018年将是人工智能和机器学习大热的一年。同时,机器学习对用户而言倾向于具有Python的风格,因为它比Java更加友好。在数据科学方面,Python的语法与数学语法最为接近,因此成为了数学家或经济学家等专业人士最容易理解和学习的语言。
机器学习工具Shogun
Shogun是一个开源的机器学习工具箱,专注于支持向量机(SVM),它是用C ++编写的,它是1999年创建的最古老的机器学习工具之一!它提供了广泛的统一机器学习方法,其创建背后的目标是为机器学习提供透明和可访问的算法,并为任何对此领域感兴趣的人提供免费的机器学习工具。
Shogun提供了一个记录完备的Python界面,主要用于统一的大规模学习,并提供高性能的速度。但是,有些人发现它的API很难使用。
Keras
Keras是一个高级神经网络API,提供了一个Python深度学习库。对于任何初学者来说,这是机器学习的最佳选择,因为与其他库相比,它提供了一种表达神经网络的更简单的方法。Keras是用Python编写的,能够在TensorFlow,CNTK或Theano等流行的神经网络框架之上运行。
据官方网站称,Keras侧重于4个主要指导原则,即用户友好性,模块化,易扩展性和使用Python。然而,就速度而言,Keras与其他库相比处于劣势。
Scikit-Learn
这是一个用于数据挖掘和数据分析的开源工具。它也适用于数据科学。Scikit-Learn提供了一致且易于使用的API以及网格和随机搜索。其主要优势之一是其在玩具数据集上执行不同基准的速度。Scikit-Learn的主要功能包括分类,回归,聚类,降维,模型选择和预处理。
Pattern
Pattern是一个Web挖掘模块,为数据挖掘,自然语言处理,机器学习,网络分析和<canvas>可视化提供工具。它还附带完善的文档和超过50个示例以及超过350个单元测试。最重要的是,它是免费的!
Theano
可以说是最成熟的Python深度学习库之一,Theano的主要功能包括与NumPy紧密集成,透明使用GPU,高效的符号差异化,速度和稳定性优化,动态C代码生成以及广泛的单元测试和自我验证。
它提供了定义,优化和评估数学表达式的工具,并且可以在Theano上构建大量其他库,以探索其数据结构。尽管如此,与Theano合作时还是有一些缺点的;它的API可能会增加一些学习曲线,而另一些人则认为Theano由于无法适应生产环境而不像其他库那样高效。
数据科学工具SciPy
这是一个基于Python的数学,科学和工程开源软件生态系统。SciPy使用NumPy,IPython或Pandas等各种软件包为常用的数学和科学编程任务提供库。当你想操纵计算机上的数字并显示或发布结果时,此工具是一个很好的选择,并且它也是免费的。
Dask
Dask是一款通过集成到其他社区项目(如NumPy,Pandas和Scikit-Learn)为分析提供并行性的工具。同样,通过更改只有几行代码,可以快速对现有代码进行并行处理,因为它的DataFrame与Pandas库中的相同,它的Array对象的工作方式类似于NumPy能够并行化以纯Python编写的作业。
Numba
此工具是一种开源优化编译器,它使用LLVM编译器基础结构将Python语法编译为机器码。在数据科学应用中与Numba一起工作的主要优势在于它使用NumPy数组代码的速度,因为Numba是一个支持NumPy的编译器。就像Scikit-Learn一样,Numba也适用于机器学习应用,因为它的加速可以在特别为机器学习或数据科学应用程序构建的硬件上运行得更快。
HPAT
高性能分析工具包(HPAT)是一个基于编译器的大数据框架。它可以自动将Python中的分析/机器学习代码扩展到裸机集群/云性能,并可以使用@jit装饰器优化特定功能。
Cython
使用数学密码或密码循环运行的代码时,Cython是你的最佳选择。Cython是一款基于Pyrex的源代码翻译器,可让你轻松编写Python的C扩展。更重要的是,通过增加对与IPython / Jupyter笔记本集成的支持,与Cython一起编译的代码可以通过内联注释在Jupyter笔记本中使用,就像任何其他Python代码一样。