簡體   English   中英

快速獲得NumPy數組反向的方法

[英]Quick way to get strided reverse of NumPy array

我有一個應用程序,我需要根據一些步幅沿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的步幅反轉這個數組。換句話說,我想快速得到以下數組:

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

使用內置的NumPy例程有快速的方法嗎?

重塑為3d數組; 反轉一維; 回到2d:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM