2013-04-03 48 views
11

循環移位我有一個numpy的陣列,例如怎麼辦在numpy的

a = np.arange(10) 

如何可以移動第一n元素到數組的末尾?

我發現這個roll功能,但它似乎只是做了相反的,它將最後的n元素轉移到開始。

+2

是不是'滾動'正是你想要的?不要將第一個'n'元素移動到最後,將最後一個'len(a)-n'元素移動到開頭? –

+0

發佈你想要的東西與你正在尋找的東西的一些數據。 – BlackVegetable

回答

30

爲什麼不只是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]) 
6

可以使用負偏移

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]

+0

一分鐘遲到:) – entropiece

+0

甚至不到那個:( –

+0

)你能告訴我,爲什麼circshift(eye(m),2)和numpy.roll(numpy.eye(m),-2))會產生不同的結果嗎? – user3515225