python - 快速获得 NumPy 数组反向的方法

标签 python arrays numpy stride

我有一个应用程序,我需要根据某个步幅沿 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/

相关文章:

python - 使用 numpy 将 M*N 矩阵的每个 3x3 窗口求和为 M/3*N/3 矩阵

python - 为什么在使用 GTKGLArea 时在 PyOpenGL 中未定义 glGenVertexArrays

python - 我的问题是否适合凸优化,如果适合,如何用 cvxpy 表达?

java - 根据位置百分比进行分组和求和 MongoDb 聚合

javascript - 如何将变量值插入for循环数组

python - 为什么在某些情况下覆盖时 math.infinity 会变成一个大的负整数?

python - "Can' t 查找模板“Django 中的错误

python - 无法在Python中使用Scrapy(1.5.1)发送电子邮件

c++ - HackerRank 的数组操作背后使用的逻辑

Python np.asarray 不返回真实形状