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



我想要一个很好的方法,将零内的 one 插入十字图案,顶部行和底部行的 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]]

您可以使用np.eye反转行,然后使用切片进行分配:

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

输出:

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