嵌套for-Python循环的输出

嵌套for-Python循环的输出,python,for-loop,multidimensional-array,Python,For Loop,Multidimensional Array,我试图将嵌套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))似

我试图将嵌套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乘2)-矩阵。

您正在使用
num
sep
列表中的值作为索引。您需要改用索引:

将numpy导入为np
num=[1,2,3]
九月=[4,5]
M=np.零((3,2))
对于i_i,i在枚举中(num):
对于i_j,枚举中的j(sep):
M[i_i,i_j]=i+j
打印(M)

根据需要输出。

您正在使用
num
sep
列表中的值作为索引。您需要改用索引:

将numpy导入为np
num=[1,2,3]
九月=[4,5]
M=np.零((3,2))
对于i_i,i在枚举中(num):
对于i_j,枚举中的j(sep):
M[i_i,i_j]=i+j
打印(M)

根据需要输出。

对于sep中的j:
sep=[4,5]
的结果是
j
在第一次迭代中变成
4
,在第二次迭代中变成
5
。因此,这导致
M[i,4]
M[i,5]
这是3x2矩阵的越界访问,不是吗。不知何故,您将迭代“索引”与在迭代中从给定列表中选择的值混淆了。
对于sep中的j:
sep=[4,5]
导致
j
在第一次迭代中变为
4
,在第二次迭代中变为
5
。因此,这导致
M[i,4]
M[i,5]
这是3x2矩阵的越界访问,不是吗。不知何故,您将迭代“索引”与在迭代中从给定列表中选择的值混淆了。