簡體   English   中英

將1D numpy數組轉換為矩陣的頂部三角形

[英]Converting 1D numpy array into top triangle of matrix

是否可以采用包含171個值的1D numpy數組並將這些值放入18X18矩陣的頂部三角形中?

我覺得我應該能夠使用np.triu_indices以某種方式做到這一點,但我無法弄清楚它!

謝謝!

請參閱從1D numpy陣列獲取此類矩陣的最有效方法是什么? 並將上三角形條目的平面列表復制到完整矩陣?

大致的方法是

result = np.zeros(...)
ind = np.triu_indices(...)
result[ind] = values

詳細信息取決於目標數組的大小以及目標中值的布局。

In [680]: ind = np.triu_indices(4)
In [681]: values = np.arange(16).reshape(4,4)[ind]
In [682]: result = np.zeros((4,4),int)
In [683]: result[ind]=values
In [684]: values
Out[684]: array([ 0,  1,  2,  3,  5,  6,  7, 10, 11, 15])
In [685]: result
Out[685]: 
array([[ 0,  1,  2,  3],
       [ 0,  5,  6,  7],
       [ 0,  0, 10, 11],
       [ 0,  0,  0, 15]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM