Python 一维numpy阵列到矩阵顶三角形的转换

Python 一维numpy阵列到矩阵顶三角形的转换,python,numpy,Python,Numpy,是否可以将包含171个值的1D numpy数组放入18X18矩阵的顶部三角形中 我觉得我应该能够使用np.triu_索引以某种方式做到这一点,但我不能完全理解它 谢谢 参见和 大体上,方法是 result = np.zeros(...) ind = np.triu_indices(...) result[ind] = values 详细信息取决于目标数组的大小以及值在目标中的布局 In [680]: ind = np.triu_indices(4) In [681]: values = np.

是否可以将包含171个值的1D numpy数组放入18X18矩阵的顶部三角形中

我觉得我应该能够使用np.triu_索引以某种方式做到这一点,但我不能完全理解它

谢谢

参见和

大体上,方法是

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]])