如何在循环中更新多个 Numpy 数组

How to update multiple Numpy arrays in a loop

我想在一个循环中更新(在每个数组前加上额外的元素)许多 numpy 数组,而不必为每个数组重复代码。

我尝试创建一个包含所有数组的列表并遍历该列表中的项目并更新每个项目,但这并没有改变原始数组。

import numpy as np
arr01 = [1,2,3]
arr02 = [4,5,6]
arr99 = [7,8,9]
print('initial arr01', arr01)
arraylist = [arr01, arr02, arr99]
for array in arraylist:
    array = np.concatenate((np.zeros(3, dtype=int), array))
    print('array being modified inside the loop', array)
print('final arr01', arr01)

在示例代码中,我希望 arr01、arr02、arr03 都用前置零进行修改。

array = np.concatenate((np.zeros(3, dtype=int), array)) 不会改变当前数组,而是创建一个新数组并将其存储在变量 array 中。因此,对于解决方案,您必须更改数组本身的值,这可以通过 array[:].

来完成

这意味着您唯一要做的更改就是替换这一行

array[:] = np.concatenate((np.zeros(3, dtype=int), array))

所以你的正确答案是

import numpy as np
arr01 = [1,2,3]
arr02 = [4,5,6]
arr99 = [7,8,9]
print('initial arr01', arr01)
arraylist = [arr01, arr02, arr99]
for array in arraylist:
    array[:] = np.concatenate((np.zeros(3, dtype=int), array))
    print('array being modified inside the loop', array)
print('final arr01', arr01)