首页 > 解决方案 > 从循环中将值插入到具有定义维度的数组中

问题描述

下午好,我正在尝试使用循环以数组的形式存储来自不同文本文件的值。我需要将从第一次迭代中获得的值存储在数组的第一行中,从第二次迭代中获得的值在第二个数组中等等......我试图通过最初创建一个零数组和然后用每次迭代的相应值替换零。然而,在循环结束时,只存储了最后一次迭代的值,也就是说,我在最后一行有一个零数组。我可能做错了什么,但我无法破译它。谁能帮我?我在这里留下代码的摘录。

nfile = 0
while nfile < 2:
    a = np.loadtxt('day_'+str(nfile)+'.txt', delimiter=",")
    amax = max(abs(a[:,0]))
    bmax = max(abs(a[:,1]))

    X = np.zeros((2, 2))
    X[nfile] = (amax, bmax)

    nfile = nfile + 1

print(X)

输出应该是:

array([[1.0404, 1.53  ],
       [1.4827, 0.73  ]])

这是我得到的输出:

array([[0.    , 0.    ],
       [1.4827, 0.73  ]])

标签: pythonarrayswhile-loop

解决方案


您在 while 循环本身中初始化 np.zeros((2,2)) ,因此在每次迭代时,您都在创建一个新的二维数组。只需在循环之前初始化 np.zeros((2,2)) ,它就会起作用。


推荐阅读