a = np.zeros((5,5), dtype = np.int8)
np.fill_diagonal(a, 1)
print(a)
[[1 0 0 0 0] [0 1 0 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1]]
np.diag(np.full(5,1,np.int8))
array([[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 1]], dtype=int8)
a = np.zeros((3, 3), np.int8);
np.fill_diagonal(np.fliplr(a), [1,2,3]) # Horizontal flip
print(a)
np.fill_diagonal(np.flipud(a), [1,2,3]) # Vertical flip
print(a)
np.fill_diagonal(a, [1,2,3])
print(a)
[[0 0 1] [0 2 0] [3 0 0]] [[0 0 3] [0 2 0] [1 0 0]] [[1 0 3] [0 2 0] [1 0 3]]
a = np.zeros((5,5), dtype = np.int8)
np.fill_diagonal(np.flipud(a), np.full(5,1,np.int8))
print(a)
[[0 0 0 0 1] [0 0 0 1 0] [0 0 1 0 0] [0 1 0 0 0] [1 0 0 0 0]]
a
array([[0, 0, 0, 0, 1],
[0, 0, 0, 1, 0],
[0, 0, 1, 0, 0],
[0, 1, 0, 0, 0],
[1, 0, 0, 0, 0]], dtype=int8)