【发布时间】:2016-01-12 01:10:37
【问题描述】:
我发现了一些关于这个问题的一般帖子(尤其是列表与数组),但我想知道是否有人知道使用 numpy.append 或重新分配条目是否更快?
具体来说,如果您知道您将拥有一个最大大小为 100 的数组,但不确定最终大小,那么最好:
array_to_mod = np.zeros(100)
for something in loop:
array_to_mod[something] = new_value
final_array = array_to_mod[0:len(loop)]
其中循环是一些你事先不知道的数字,除非它低于 100,或者类似:
final_array = np.array([])
for something in loop:
final_array = np.append(final_array, new_value)
想法?
【问题讨论】:
-
我会选择第一个。
-
正如@Divakar 建议的那样,我也认为保留最大空间量(如果它接近最终形状)然后返回一个
view或一个copy仅有趣的部分会比迭代连接现有数组更有效。