我计算了9个名为sij的矩阵元素,其中i和j是变量(i,j = [1,2,3])。这里,i表示行和j列。假设我想要一个由矩阵元素s11,s12,... s32,s33(总共九个元素)组成的3x3矩阵。
matrix = [[s11, s12, s13], [s21, s22, s23], [s31, s32, s33]]
如何使用for循环从这些元素构造矩阵?像这样:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
所以我得到一个看起来像这样的矩阵。
----------------------------------
PeopleID| Type| AreaCode| Number|
----------------------------------
3553187 | Work| 651 | (651)848-7107
2574269 | NULL| 763 | 763-764-7353
2574269 | Work| 763 | 763-764-7600
3078853 | Cell| 416 | 416-996-2538
答案 0 :(得分:1)
我会考虑将sij
重命名为s[i][j]
。然后在循环中使用它们将是微不足道的。
s[1][1] = 1
s[1][2] = 2
s[1][3] = 3
(...)
s[3][3] = 9
然后:
而不是:
matrix = [[s11, s12, s13], [s21, s22, s23], [s31, s32, s33]]
您可以使用以下两个嵌套循环来构造矩阵。
for i in (1,4):
for j in (1,4):
顺便说一下,基于 0的编号会更像Pythonic。
答案 1 :(得分:0)
你最好编写一个数组并重新整形,这样你就不需要输出元素到变量,但这里是一个单行
>> np.reshape([eval('s{0}{1}'.format(x,y)) for x in range(1,4) for y in range(1,4)], (3,3))
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]