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

2024-09-29 19:36:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个循环中更新(在每个数组前面添加额外的元素)许多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都用前面的零进行修改。你知道吗


Tags: 项目代码importnumpy元素列表asnp
1条回答
网友
1楼 · 发布于 2024-09-29 19:36:09

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)

相关问题 更多 >

    热门问题