を、私は、これは非常に効率的ではないことを、恐れるが、私はこれまでのところは良いアイデアを持っていない、これらの軸のように、後者は長さ2
でありますその軸に沿って[::-1]
で配列を反転し、最後に元の形状に戻します。
したがって、我々はそうのような実装を持っているでしょう - あなたが効率的にそれら常にひっくり返すインデックスorder
を作成するために探している場合、私たちは何かを行うことができ、また
In [170]: a = np.random.randint(0,9,(6,3))
In [171]: order = [1,0,3,2,5,4]
In [172]: a[order]
Out[172]:
array([[0, 8, 5],
[4, 5, 6],
[0, 0, 2],
[7, 3, 8],
[1, 6, 3],
[2, 4, 4]])
In [173]: a.reshape(-1,2,*a.shape[1:])[:,::-1].reshape(a.shape)
Out[173]:
array([[0, 8, 5],
[4, 5, 6],
[0, 0, 2],
[7, 3, 8],
[1, 6, 3],
[2, 4, 4]])
-
a.reshape(-1,2,*a.shape[1:])[:,::-1].reshape(a.shape)
のサンプル実行このように -
order = np.arange(data.shape[0]).reshape(-1,2)[:,::-1].ravel()
だから、 'data [order]'はあなたのために働くそれは効率が悪いと思う? – Divakar
@Divakar正確 – Glostas