繁体   English   中英

为什么要将python列表转换为numpy数组?

[英]Why to convert a python list to a numpy array?

一种简单的方法可以将python中的数字列表转换为numpy数组。

但是我试过的简单函数,例如numpy.average(x) ,无论x是简单的python列表还是numpy数组都可以工作。 在哪种类型的情况下,需要将python中的列表(或数组)转换为numpy中的数组?

到目前为止给出的答案非常好。 通过其方法将大量NumPy功能绑定到数组对象的简单方便非常有用。 这是尚未提及的内容。

在将列表传递给NumPy函数之前将列表转换为数组的一个非常好的理由是,在内部,大多数NumPy函数尝试在执行任何计算之前创建应该是NumPy数组的数组的参数。 这意味着,当您在值列表或值列表列表上调用NumPy函数时,NumPy首先将列表转换为数组,然后运行计算,然后返回结果。

如果在同一列表中多次调用NumPy函数,NumPy将被强制构造一个新数组,并在每次调用内置NumPy函数将数组中的值复制到其中。 这会导致大量不必要的转换,并会降低每个函数调用的速度。 要将列表转换为数组,NumPy必须遍历您给出的列表以确定合适的数据类型和形状,分配一个空数组来保存所需的值,然后再次遍历列表以存储每个Python中包含的值对象在数组的相应条目中。

所有这些额外的工作可能会减慢速度,如果没有必要,多次进行所有相同的转换是没有意义的。

Numpy数组比python列表更紧凑,它使用更少的内存。 Numpy不仅效率更高,而且更方便。 Numpy中有很多向量和矩阵运算。 还有内置于Numpy中的东西,如FFT,卷积,统计,直方图等。还有像速度这样的东西,例如,如果你将Numpy数组的元素与列表中的元素相比较,它会更快。 要回答你的问题特别是Numpy数组在处理大型多维数组时非常有用,或者如果你想进行科学计算,可以说出几件事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM