我有一个应用程序,我需要根据某个步幅沿 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]])
我想以 2 的步幅沿第一个轴 (axis=0
) 反转这个数组。换句话说,我想快速得到以下数组:
Out[4]:
array([[3, 4],
[1, 2],
[7, 8],
[5, 6]])
是否有使用内置 NumPy 例程的快速方法?
最佳答案
重新整形为 3d 数组;反转一维;返回二维:
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]])
关于python - 快速获得 NumPy 数组反向的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32834307/