Python 如何使用numpy在零之间形成一个交叉模式

Python 如何使用numpy在零之间形成一个交叉模式,python,numpy,Python,Numpy,我想要一个很好的方法,在顶部行和底部行的交叉模式中插入0中的1 import numpy as np a = np.zeros((n,n), dtype=int) a[0,:] = 1 a[-1,:] = 1 for i in range(1,n): a[i,-i-1] = 1 print(a) 输出: [[1 1 1] [0 1 0] [1 1 1]] [[1 1 1 1] [0 0 1 0] [0 1 0 0] [1 1 1 1]] 您可以使用np.ey

我想要一个很好的方法,在顶部行和底部行的交叉模式中插入0中的1

import numpy as np

a = np.zeros((n,n), dtype=int)
a[0,:] = 1 
a[-1,:] = 1 

for i in range(1,n):
    a[i,-i-1] = 1

print(a)
输出:

[[1 1 1]  
[0 1 0]  
[1 1 1]]
[[1 1 1 1]
 [0 0 1 0]
 [0 1 0 0]
 [1 1 1 1]]
您可以使用np.eye并反转行,然后使用切片指定:

a = np.eye(n, dtype=int)[::-1]
a[[0,-1]] = 1
print(a)
输出:

[[1 1 1]  
[0 1 0]  
[1 1 1]]
[[1 1 1 1]
 [0 0 1 0]
 [0 1 0 0]
 [1 1 1 1]]