快速实现NumPy数组的快速反转

2024-04-16 17:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,在这个应用程序中,我需要根据一定的步幅来反转NumPy数组的一个轴上的元素。作为一个例子,让我们考虑一下我有以下数组

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。换句话说,我想快速得到以下数组:

^{pr2}$

有没有一个快速的方法来做这个内置的裸体例行程序?


Tags: inimportnumpy应用程序元素asnp数组
1条回答
网友
1楼 · 发布于 2024-04-16 17:28:18

重塑为三维阵列;反转一维;返回二维:

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]])

相关问题 更多 >