2 回答
TA贡献1887条经验 获得超5个赞
实际上,您的问题仍然让我感到困惑。如何定义要插入到新位置的新值?它是否来自您的代码外部?您的数组是否具有所有新值,还是只有数组的一部分?
也许,您可以使用 中的切片,这些切片正好用于数组的快速更新,但是,我并不完全确定这是您想要做的。numpy
为您提供一些示例:
>>> import numpy as np
>>> a = np.zeros(shape=(10,))
>>> a
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
>>> a[3:6] += 1
>>> a
array([0., 0., 0., 1., 1., 1., 0., 0., 0., 0.])
>>> a[:4] += .001
>>> a
array([1.000e-03, 1.000e-03, 1.000e-03, 1.001e+00, 1.000e+00, 1.000e+00,
0.000e+00, 0.000e+00, 0.000e+00, 0.000e+00])
>>> a[3:5] = [2, 1]
>>> a
array([1.e-03, 1.e-03, 1.e-03, 2.e+00, 1.e+00, 1.e+00, 0.e+00, 0.e+00,
0.e+00, 0.e+00])
>>>
TA贡献2003条经验 获得超2个赞
如果我对你的理解是正确的,你需要某种循环缓冲区。Python有collections.deque用于此目的。
这是我使用 循环缓冲区的自定义实现,但您可以将其更改为 。h5py
numpy
更新:正如评论中已经提到的那样,不可能跟踪开箱即用的更改。相反,您可以实现自己的类并跟踪所有必要的更改(请参阅我的实现作为示例,即连接数组以扩展其大小)。我建议你使用python,如果你需要追加,或者你需要固定的大小。然后可以将这两个数组转换为np.array
list
deque
np.array
添加回答
举报