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