📜  Python中的 numpy.roll()

📅  最后修改于: 2022-05-13 01:55:29.042000             🧑  作者: Mango

Python中的 numpy.roll()

numpy.roll()函数沿指定轴滚动数组元素。基本上发生的是输入数组的元素正在移动。如果一个元素首先被滚动到最后一个位置,它会被回滚到第一个位置。

句法 :

numpy.roll(array, shift, axis = None)

参数 :

array : [array_like][array_like]Input array, whose elements we want to roll
shift : [int or int_tuple]No. of times we need to shift array elements.
        If a tuple, then axis must be a tuple of the same size, and each of the given 
        axes is shifted
        by the corresponding number. 
        If an int while axis is a tuple of ints, then the same value is used for all given axes.
axis  :  [array_like]Plane, along which we wish to roll array or shift it's elements.

返回 :

Output rolled array, with the same shape as a.

Python
# Python Program illustrating
# numpy.roll() method
  
import numpy as geek
  
array = geek.arange(12).reshape(3, 4)
print("Original array : \n", array)
  
# Rolling array; Shifting one place
print("\nRolling with 1 shift : \n", geek.roll(array, 1))
 
# Rolling array; Shifting five places
print("\nRolling with 5 shift : \n", geek.roll(array, 5))
 
# Rolling array; Shifting five places with 0th axis
print("\nRolling with 2 shift with 0 axis : \n", geek.roll(array, 2, axis = 0))


输出 :

Original array : 
 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

Rolling with 1 shift : 
 [[11  0  1  2]
 [ 3  4  5  6]
 [ 7  8  9 10]]

Rolling with 5 shift : 
 [[ 7  8  9 10]
 [11  0  1  2]
 [ 3  4  5  6]]

Rolling with 2 shift with 0 axis : 
 [[ 4  5  6  7]
 [ 8  9 10 11]
 [ 0  1  2  3]]