如何使用Numpy生成動態大小的下對角矩陣?例如,如果n矩陣的大小是4我想獲得這樣一個矩陣:| 0 0 0 0 |
| 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |
2 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
我發現了使用np.eye 的最短方法:
import numpy as np
n = 4
np.eye(n, k=-1, dtype=int)
輸出是:
array([[0, 0, 0, 0],
? ? ? ?[1, 0, 0, 0],
? ? ? ?[0, 1, 0, 0],
? ? ? ?[0, 0, 1, 0]])

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
你可以創建它,首先創建一個帶零的矩陣,然后填充那些:
import numpy as np
# create matrix with zeros
n=4
mat = np.zeros((n,n))
# create indexes for where the 1s belong
rows = np.arange(1,n)
cols = np.arange(n-1)
# fill in the 1s
mat[rows, cols] = 1
輸出:
[[0. 0. 0. 0.]
[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
添加回答
舉報
0/150
提交
取消