Python 如何在numpy中进行循环移位

Python 如何在numpy中进行循环移位,python,arrays,numpy,shift,Python,Arrays,Numpy,Shift,例如,我有一个numpy数组 a = np.arange(10) 如何将第一个n元素移动到数组的末尾 我找到了这个函数,但它似乎只起相反的作用,将最后的n元素移到开头。为什么不用负数滚动 >>> 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) a

例如,我有一个numpy数组

a = np.arange(10)
如何将第一个
n
元素移动到数组的末尾


我找到了这个函数,但它似乎只起相反的作用,将最后的
n
元素移到开头。

为什么不用负数滚动

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

你可以使用负移位

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]


roll
不正是你想要的吗?将最后一个
len(a)-n
元素移到开头,而不是将第一个
n
元素移到末尾?发布一些您想要的与正在查找的内容的数据。您能告诉我,为什么circshift(eye(m),2)和numpy.roll(numpy.eye(m),-2))产生不同的结果吗?1.)circshift是什么?2) 评论:这不是一个正确的提问的地方question@FrancescoMontesano
CirchShift
是一个。我不懂Matlab。我的猜测是:从0到1的索引;列-相对于行的第一顺序。。。