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
添加回答
舉報