如何创建二维数组?

时间:2019-06-04 23:28:08

标签: python

我想使用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。

2 个答案:

答案 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)