我想使用python中的循环来创建一个二维数组,如下所示:
[[1,0,0,0,0,0]
[0,1,0,0,0,0]
[0,0,1,0,0,0]
[0,0,0,1,0,0]
[0,0,0,0,1,0]
[0,0,0,0,0,1]]
1的索引在下一行增加1,数组中其余元素填充为0。
答案 0 :(得分:3)
P.S:有几种方法可以构建这样的矩阵。这是使用for循环进行此操作的一种方法。您需要的矩阵称为身份矩阵
size = 6
arr = [[0]*size for _ in range(size)] # Initialize 6 lists all with zeros
# Now change the value to 1 on the diagonal enteries
for i in range(size):
arr[i][i] = 1
print (arr)
# [[1 0 0 0 0 0]
# [0 1 0 0 0 0]
# [0 0 1 0 0 0]
# [0 0 0 1 0 0]
# [0 0 0 0 1 0]
# [0 0 0 0 0 1]]
使用NumPy的替代项1 :类似于上述情况,使用NumPy 初始化6x6的零矩阵,然后将对角线上的0替换为1。
import numpy as np
size = 6
arr = np.zeros((size, size))
for i in range(size):
arr[i][i] = 1
print (arr)
替代2
import numpy as np
size = 6
arr = np.eye(size)
替代3
np.identity(6)
答案 1 :(得分:1)
您可以运行以下代码
arr = []
for i in range(6):
arr.append([])
for j in range(6):
if i == j:
arr[i].append(1)
else:
arr[i].append(0)
print(arr)