在迭代算法中,通常多次使用大型numpy数组。通常,阵列需要手动复位"在每次迭代。填充现有数组(使用nans或0)和创建新数组之间是否存在性能差异?如果是这样,为什么?
答案 0 :(得分:1)
答案取决于数组的大小。虽然分配新的存储器区域需要几乎一定的时间,但是填充该存储器区域的时间随着大小而变化。
但是,使用numpy.zeros
填充新分配的内存几乎是使用numpy.fill
填充现有数组的两倍,并且比项目设置x[:] = 0
快三倍。
因此,在我的机器上,填充少于800个元素的向量比创建新向量更快,创建新向量的800多个元素变得更快。