我想創建3D對角線矩陣。我已經用 numpy 例程 numpy.fill_diagonal(numpy.zeros((N, N, N)), n) 成功創建了一個,但是它不允許選擇要填充的對角線。
換句話說,我想找到這個numpy例程的三維泛化:https://numpy.org/doc/stable/reference/generated/numpy.diag.html。謝謝你。
uj5u.com熱心網友回復:
好吧,不要使用np.diag來填充半對角線,你可以像這樣手動完成:
N = 4
arr = np.zeros((N, N))
i = np.arange(N-1)
arr[i,i 1] = 1
array([0., 1., 0., 0.],
[0., 0., 1., 0.] 。
[0., 0., 0., 1.] 。
[0., 0., 0., 0.] ])
而且它的優點是可以推廣到三維陣列。
arr = np.zeros((N, N, N))
i = np.range(N-1)
arr[i,i,i 1] =1
array([[0./span>, 1./span>, 0./span>, 0./span>] 。
[0., 0., 0., 0.] 。
[0., 0., 0., 0.] 。
[0., 0., 0., 0.]】。]
[[0., 0., 0., 0.] 。
[0., 0., 1., 0.] 。
[0., 0., 0., 0.] 。
[0., 0., 0., 0.]】。]
[[0., 0., 0., 0.] 。
[0., 0., 0., 0.] 。
[0., 0., 0., 1.] 。
[0., 0., 0., 0.]】。]
[[0., 0., 0., 0.] 。
[0., 0., 0., 0.] 。
[0., 0., 0., 0.] 。
[0., 0., 0., 0.]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/326888.html
標籤:
上一篇:尋找影像中一條線上的像素坐標
