擅长:python、mysql、java
<p>在数字诊断返回沿某个索引的对角线。<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.diag.html" rel="nofollow">Documentation</a></p>
<p>所以这应该会给你想要的输出:(注意第0条对角线是正常对角线,所以如果你想要子对角线,你可能需要对对角线使用负值。)</p>
<pre><code>import numpy as np
def flatten_diagonally(npA, diagonals = None):
diagonals = diagonals or xrange(-npA.shape[0] + 1, npA.shape[1])
return np.concatenate(map(lambda x: np.diag(npA, k = x), diagonals))
</code></pre>
<p>请注意,而不是np诊断,您可以使用np.对角线,我不太确定哪个更好。<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.diagonal.html" rel="nofollow">Documentation</a></p>