我正在尝试将嵌套的 for 循环的输出输出到数组或矩阵中。例如,在下面的代码示例中,我想要一个(3 x 2)形式的矩阵:
[[5 6],
[6 7],
[7 8]]
但是我的代码给出了错误。
import numpy as np
num = [1,2,3]
sep = [4, 5]
M = np.zeros((3,2))
for i in num:
for j in sep:
M[i, j] = i + j
M
但是,我意识到将初始化更改为np.zeros((4,6))
似乎可行,但是使用了一些无关的单元格。有人可以解释一下它是如何工作的,或者可能是我如何实现这个(3 x 2)矩阵。
答案 0 :(得分:2)
您将num
和sep
列表中的值用作索引。您需要改用索引:
import numpy as np
num = [1,2,3]
sep = [4, 5]
M = np.zeros((3,2))
for i_i,i in enumerate(num):
for i_j,j in enumerate(sep):
M[i_i, i_j] = i + j
print(M)
根据需要输出。