让我说我有这个:( numpy数组)
a=
[0 1 2 3],
[4 5 6 7],
[8 9 10 11]
Run Code Online (Sandbox Code Playgroud)
得到[1,1]即5,其对角线为零; 根据numpy , a.diagonal(0)= [0,5,10]
. 如何获得[1,1]的反向或右对角线[2,5,8]?这可能吗?我原来的问题是8乘8(0:7)..我希望有所帮助
fal*_*tru 13
获取每行反转的新数组.
>>> import numpy as np
>>> a = np.array([
... [0, 1, 2, 3],
... [4, 5, 6, 7],
... [8, 9, 10, 11]
... ])
>>> a[:, ::-1]
array([[ 3, 2, 1, 0],
[ 7, 6, 5, 4],
[11, 10, 9, 8]])
>>> a[:, ::-1].diagonal(1)
array([2, 5, 8])
Run Code Online (Sandbox Code Playgroud)
或使用numpy.fliplr
:
>>> np.fliplr(a).diagonal(1)
array([2, 5, 8])
Run Code Online (Sandbox Code Playgroud)