填充现有numpy数组和创建新数组之间的性能差异

时间:2015-07-19 07:02:45

标签: python numpy

在迭代算法中,通常多次使用大型numpy数组。通常,阵列需要手动复位"在每次迭代。填充现有数组(使用nans或0)和创建新数组之间是否存在性能差异?如果是这样,为什么?

1 个答案:

答案 0 :(得分:1)

答案取决于数组的大小。虽然分配新的存储器区域需要几乎一定的时间,但是填充该存储器区域的时间随着大小而变化。 但是,使用numpy.zeros填充新分配的内存几乎是使用numpy.fill填充现有数组的两倍,并且比项目设置x[:] = 0快三倍。

因此,在我的机器上,填充少于800个元素的向量比创建新向量更快,创建新向量的800多个元素变得更快。