numpy python上的反向对角线

Mas*_*ard 8 python numpy

让我说我有这个:( 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)


wim*_*wim 5

翻转阵列并使用相同的:

np.flipud(a).diagonal(0)[::-1]
Run Code Online (Sandbox Code Playgroud)