擅长:python、mysql、java
<p>元素的顺序重要吗?在</p>
<p>通常情况下,矩阵的上、下三角取对角线(从左上到右下)。要解决这个问题,您需要在两条对角线之间“翻转”,这可以通过<code>np.fliplr(matrix)</code>来实现。这将得到正确的元素,但以“自然”的顺序(一行一行,每一行变短)。您也可以通过相反的方式来获得一列一列的顺序(<code>np.flipud</code>)。但是我不知道有什么方法可以得到你所使用的“按较小对角线读取”的顺序,除了一次读取一个对角线的矩阵。在</p>
<p>为了得到对角线元素,你可以用<code>np.triu_indices</code>(或者,对于下三角,<code>np.tril_indices</code>)得到它们的索引,然后用它们来索引。在</p>
<pre><code>>>> matrix
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> np.fliplr(matrix)[np.triu_indices(3)]
array([3, 2, 1, 5, 4, 7])
</code></pre>