3

いくつかのストライドに従って、NumPy 配列の 1 つの軸に沿って要素を逆にする必要があるアプリケーションがあります。例として、次の配列があると考えてみましょう

In [1]: import numpy as np

In [2]: a = np.array([[1,2],[3,4],[5,6],[7,8]])

In [3]: a
Out[3]: 
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])

この配列を最初の軸 ( axis=0) に沿ってストライド 2 で反転させたいと考えています。つまり、次の配列をすばやく取得したいと考えています。

Out[4]: 
array([[3, 4],
       [1, 2],
       [7, 8],
       [5, 6]])

組み込みの NumPy ルーチンでこれを行う簡単な方法はありますか?

4

1 に答える 1

4

3D 配列に変形します。1 つの次元を反転します。2次元に戻る:

In [51]: a = np.array([[1,2],[3,4],[5,6],[7,8]])
In [52]: a
Out[52]: 
array([[1, 2],
       [3, 4],
       [5, 6],
       [7, 8]])
In [53]: a.reshape(2,2,2)
Out[53]: 
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])
In [54]: a.reshape(2,2,2)[:,::-1,:]
Out[54]: 
array([[[3, 4],
        [1, 2]],

       [[7, 8],
        [5, 6]]])
In [55]: a.reshape(2,2,2)[:,::-1,:].reshape(4,2)
Out[55]: 
array([[3, 4],
       [1, 2],
       [7, 8],
       [5, 6]])
于 2015-09-29T02:04:03.130 に答える