Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将三角形矩阵的元素放入向量中_Python_Matrix_Vector_Triangulation - Fatal编程技术网

Python 将三角形矩阵的元素放入向量中

Python 将三角形矩阵的元素放入向量中,python,matrix,vector,triangulation,Python,Matrix,Vector,Triangulation,我试图得到相关矩阵mS的上对角线元素。因此,我使用np.triu(我不希望对角线上的元素,所以我使用k=1)。但是,我想把这些元素放在一个向量中。我已经读了很多关于np.triu_索引的文章,但是代码不起作用,因为我得到了一个错误:一个包含多个元素的数组的真值是不明确的。使用a.any()或a.all() 我希望有一个数组(名为vPR),上面的所有triu元素都放在其中。希望有人能帮忙 函数np。triu_索引提供对角线上方所有项目的索引列表。从三角矩阵开始,修剪左列和底行(因为它们包含所有零)

我试图得到相关矩阵mS的上对角线元素。因此,我使用np.triu(我不希望对角线上的元素,所以我使用k=1)。但是,我想把这些元素放在一个向量中。我已经读了很多关于np.triu_索引的文章,但是代码不起作用,因为我得到了一个错误:一个包含多个元素的数组的真值是不明确的。使用a.any()或a.all()


我希望有一个数组(名为vPR),上面的所有triu元素都放在其中。希望有人能帮忙

函数
np。triu_索引
提供对角线上方所有项目的索引列表。从三角矩阵开始,修剪左列和底行(因为它们包含所有零),并通过索引提取所有其他项:

np.triu(mS, k=1)[:-1, 1:][np.triu_indices(mS.shape[0] - 1)]
#array([ 0.8,  0.6,  0.8,  0.7,  0.8,  0.6,  0.9,  0.5,  0.6,  0.8,  0.8,
#        0.5,  0.6,  0.7,  0.7,  0.8,  0.5,  0.8,  0.7,  0.7,  0.8,  0.6...

可以为所需的对角线生成索引数组

r, c = mSi.shape

mSi[np.arange(0, r-1), np.arange(1, c)]

Out[28]: array([0.8, 0.8, 0.7, 0.8, 0.5, 0.9, 0.6, 0.8, 0.9, 0.8])
r, c = mSi.shape

mSi[np.arange(0, r-1), np.arange(1, c)]

Out[28]: array([0.8, 0.8, 0.7, 0.8, 0.5, 0.9, 0.6, 0.8, 0.9, 0.8])