我需要制作一個 NxN 矩陣并指定對角線元素。這是我到目前為止所嘗試的,我希望找到一個更優雅的沒有回圈的解決方案。
N = 4
value_offdiag = 2
b = np.eye(N, N)
b[np.triu_indices(N, 1)] = value_offdiag
b[np.tril_indices(4, -1)] = value_offdiag
這行得通,但必須有一種更好的方法,而不使用回圈。只是想檢查一下(谷歌搜索到目前為止還沒有透露太多)
uj5u.com熱心網友回復:
怎么用numpy.fill_diagonal?
N = 4
value_offdiag = 2
b = np.ones((N,N))*value_offdiag
np.fill_diagonal(b,1)
print(b)
輸出:
[[1. 2. 2. 2.]
[2. 1. 2. 2.]
[2. 2. 1. 2.]
[2. 2. 2. 1.]]
uj5u.com熱心網友回復:
單線:
N = 4
value1 = 100
value2 = 234
a = np.eye(N)*value1 abs(np.eye(N)-1)*value2
輸出:
>>> a.astype(int)
array([[ 13, 240, 240, 240],
[240, 13, 240, 240],
[240, 240, 13, 240],
[240, 240, 240, 13]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/441536.html
下一篇:拆分Csv檔案中的列
