如何在numpy数组形状(n,)或(n,1)中旋转数字?

时间:2013-04-12 11:03:28

标签: python numpy

说我有一个numpy数组:

>>> a 
array([0,1,2,3,4])

我希望“旋转”它以获得:

>>> b
array([4,0,1,2,3])

最好的方法是什么?

我一直在转变为一个双端队列(见下文)但是有更好的方法吗?

b = deque(a)
b.rotate(1)
b = np.array(b)

3 个答案:

答案 0 :(得分:9)

只需使用numpy.roll功能:

a = np.array([0,1,2,3,4])
b = np.roll(a,1)
print(b)
>>> [4 0 1 2 3]

另见this question

答案 1 :(得分:2)

numpy.concatenate([a[-1:], a[:-1]])
>>> array([4, 0, 1, 2, 3])

答案 2 :(得分:1)

试试这个

b = a[-1:]+a[:-1]