如何在numpy中进行循环移位

时间:2013-04-03 16:08:33

标签: python arrays numpy shift

我有一个numpy数组,例如

a = np.arange(10)

如何将第一个n元素移动到数组的末尾?

我找到了这个roll函数,但似乎只是反过来,它将最后n个元素移到了开头。

2 个答案:

答案 0 :(得分:37)

为什么不只是roll带有负数?

>>> import numpy as np
>>> a = np.arange(10)
>>> np.roll(a,2)
array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])
>>> np.roll(a,-2)
array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1])

答案 1 :(得分:8)

你可以使用负移位

a = np.arange(10)
print(np.roll(a, 3))
print(np.roll(a, -3))

返回

  

[7,8,9,0,1,2,3,4,5,6]
  [3,4,5,6,7,8,9,0,1,2]