当前位置: 首页 > 科技观察

流行的Python机器学习库的趋势和比较

时间:2023-03-23 01:59:21 科技观察

Python是世界上最流行的编程语言之一,拥有越来越多的库和框架。查看最新的。Python是世界上最流行的编程语言之一,有越来越多的库和框架来促进AI和ML的开发。Python中有超过250个库,要了解哪个库最适合你的项目并跟上所有这些库带来的技术变化和趋势,可能会有点混乱。下面是我使用过的流行的Python机器学习库。我尽量按照在哪些场景下使用来归类。除了这些还有很多库,但是我没用过的不能说,我觉得这些是用的最多的。NumPyNumPy是一个众所周知的通用数组处理包,与其他机器学习包不同。对于n维数组(向量、矩阵和高阶矩阵),NumPy提供了高性能(原生编译)支持和对各种操作的支持。它支持向量化操作,特别是将Python表达式转换为低级代码调度,隐式循环跨越不同的数据子集。NumPy函数numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0)函数的start和stop参数是必须的,它们返回的值在预定的时间间隔内均匀分布。numpy.repeat使用numpy.repeat(a,repeats,axis=None)方法重复数组的元素。第二个输入repeats指定重复次数。numpy.random.randint函数numpy.random.randint(low,high=None,size=None,dtype='l')从[low,high]返回一个随机整数。如果没有high参数(无),则从范围[0,low]中选择一个随机数。为什么Numpy如此受欢迎?简而言之,NumPy的优化和预编译C代码完成了所有繁重的工作,使其比标准Python数组更快。NumPy使科学计算中经常使用的许多数学程序快速且易于使用。PandasPandas正迅速成为使用最广泛的Python数据分析库,因为它支持快速、适应性强且富有表现力的数据结构来处理“关系”和“标记”数据。有一些实际的和现实世界的Python数据分析问题需要Pandas。Pandas提供了彻底的优化和高度可靠的性能。只有C或Python纯粹用于编写后端代码。Pandas的一些函数pd.read_csv、pd.read_excel首先要提到的函数是read_csv或read_excel。这些功能已经提供了明确的解释。我使用它们将数据从CSV或Excel文件读取为pandasDataFrame格式。df=pd.read_csv("PlayerStat.csv").readcsv()函数还可以使用以下语法读取.txt文件:data=pd.read_csv(file.txt,sep="")df.query()Boolean表达式可以过滤或查询数据。我可以使用查询函数将过滤条件应用为字符串。它提供了比许多其他程序更多的自由。df.query("A>4")仅返回A大于4的行。df.iloc()我将行和列索引作为参数传递给函数,该函数返回DataFrame的适当子集。df[''].dtypes另一个非常基本和流行的函数。在开始任何分析、可视化或预测建模之前,必须了解变量的数据类型。使用这种技术,您可以获得每一列的数据类型。df.dtypesPandasvsVaexVaexPython是Pandas库的替代品,它使用OutofCoreDataframes来更快地计算大量数据。为了查看和研究大型表格数据集,Vaex是一个高性能的Python模块,用于懒惰的核外DataFrames(类似于Pandas)。使用简单的统计数据每秒可以计算超过10亿行。它支持各种可视化,允许进行广泛的交互式数据探索。TensorFlowTensorFlow是由Google创建和发布的用于快速数值计算的Python库。Tensorflow使用与Theano不同的语言和函数名称,这可能会使从Theano的转换变得更加复杂。然而,Tensorflow中整个计算图的运行与Theano类似,具有相同的优点和缺点。即使对计算图的修改对性能有重大影响,Tensorflow的eval函数也只是让观察中间状态稍微容易一些。与几年前的Theano和Caffe相比,Tensorflow是首选的深度学习技术。TensorFlow内置函数tf.zeros_like该函数的输出是一个与输入张量具有相同类型和形状但具有零值的张量。tensor=tf.constant(I[1,2,3],[4,5,6]])tf.zeros_like(tensor)#[[0,0,0],[0,0,0]来自输入图像此功能在创建黑色图像时很有用。如果您希望直接定义表单,请使用tf.zeros。如果您更喜欢用1而不是0进行初始化,请使用tf.ones_like。tfpad在其周围添加指定的填充值,以增加张量的维数。tf.enable_eager_execution这可以帮助您运行TensorFlow应用程序。使用eagerexecution时,您不需要在会话中构建和运行图形。这里有更多关于eagerexecution的信息。“Eagerexecution”必须是导入TensorFlow后的第一条语句。TensorFlow和PyTorchTorch的Python实现Pytorch得到了Facebook的支持。它通过提供即时图形编译来与上述技术竞争,通过不将图形视为不同且不透明的对象,使Pytorch代码与周围的Python更加兼容。相反,有许多灵活的技术可以即时构建张量计算。此外,它表现良好。它具有强大的多GPU能力,很像Tensorflow;然而,Tensorflow仍然适用于更大规模的分布式系统。虽然Pytorch的API有很好的文档记录,但Tensorflow或Keras的API甚至更完整。然而,Pytorch在不牺牲性能的情况下,在灵活性和可用性方面胜出,这无疑迫使Tensorflow重新思考和调整。Tensorflow最近受到Pytorch的严重挑战,KerasKeras是一个开源软件库,它为人工神经网络提供Python接口。由于Keras名义上是独立于引擎的,因此即使引擎因性能或其他因素需要更改,理论上也可以重用Keras代码。它的缺点是,当你想创建非常新颖或专门的架构时,你往往需要在Keras层下使用Tensorflow或Theano。这主要发生在您需要使用复杂的NumPy索引时,这对应于Tensorflow中的gather/scatter和Theano中的set/inc子张量。Keras函数评估和预测在Keras中,evaluate()和predict()都可用。这些技术可以利用NumPy数据集。当数据经过测试后,我就完成了对结果的评估。我使用这些技术来评估我们的模型。Keras中的层每个Keras层都包含许多技术。这些层有助于构建、配置和训练数据。密集层便于操作实施。我使用flat展平了输入。Dropout启用输入丢失。我可以使用重塑工具重塑输出。我启动一个带输入的Keras张量。你可以得到中间层的输出。一个相当简单的库是Keras。它使得从层的中间层获得输出成为可能。您可以轻松地向现有图层添加新图层,以帮助您在中间获得输出。TheanoTheano是一个Python库和优化编译器,用于操作和评估数学表达式,尤其是矩阵值表达式。作为最古老和最成熟的,Theano既有优势也有劣势。大多数用户请求的功能都已添加,因为它是旧版本。然而,其中一些实现有点过于复杂且难以使用,因为没有先例可循。该文档是可以通过但模棱两可的。让复杂的项目在Theano中正常工作可能非常具有挑战性,因为没有简单的方法来检查中间计算。他们通常使用调试器或通过查看计算图进行调试。Theano函数声明变量我已经使用dscalar方法声明了一个标量十进制变量。当下面的语句运行时,它会在您的程序代码中添加一个名为C的变量。C=tensor.dscalar()定义了一个接受两个参数的Theano函数,第一个是函数的输入,第二个是函数的输出。根据下面的声明,第一个参数是一个包含两项的数组,C和D。结果是一个标量单元,指定为E。f=theano.function([C,D],E)结论我已经看到熟练的Python程序员可以快速掌握新库的精妙之处并了解如何使用它。但是选择一种编程语言,或者在这种情况下,选择一个库而不是另一个,无论您是初学者、中级还是专家,在很大程度上取决于项目的目标和需求。