numpy数组的append与resize对比

15 投票
1 回答
5047 浏览
提问于 2025-04-15 23:09

我想在我的 numpy.array 的末尾添加一个值。我看到有 numpy.append 这个函数,但它会把原来的数组完全复制一遍,然后在最后加上我的新值。我希望避免这种复制,因为我的数组很大。

我现在使用 resize 方法,然后把最后一个可用的索引设置为新值。你能确认 resize 是在末尾添加值的最佳方法吗?这样做会不会在内存中移动一些东西呢?

oldSize = myArray,shape(0)
myArray.resize( oldSize + 1 )
myArray[oldSize] = newValue

1 个回答

8

我做了一个简单的实验,比较了追加数据和调整大小的速度,结果发现调整大小大约快了3倍。这是我能想到的最快的方法。而且,关于这个问题的回答似乎也暗示,调整数组大小是更好的选择,因为它是在原地进行的。

结论:使用调整大小

另外,你可能还想看看这个讨论,这是来自numpy邮件列表的内容。

撰写回答