嵌套for-Python循环的输出
我试图将嵌套for循环的输出放入数组或矩阵中。例如,在下面的代码示例中,我想要一个(3 x 2)-矩阵的形式:嵌套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))似
[[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矩阵的越界访问,不是吗。不知何故,您将迭代“索引”与在迭代中从给定列表中选择的值混淆了。