2011-05-02 43 views
8

我有一個numpy的陣列是這樣的:移位所有索引中NumPy的陣列

x=np.array([0,1,2,3,4]) 

,並希望在那裏索引0處的值是在索引1創建一個數組,索引1是在索引2等

我想輸出是:

y=np.array([0,0,1,2,3]). 

我猜有一個簡單的方法來做到這一點,而無需通過完整的循環訪問數組。我怎樣才能以numPythonic的方式做到這一點?

回答

14

您可以使用

y = numpy.roll(x, 1) 
y[0] = 0 

y = numpy.r_[0, x[:-1]] 
+0

NumPy的斯文救援。謝謝! – Idr 2011-05-02 16:24:10

0

如果你想這樣做原地的,你也可以這樣做:

x[1:] = x[:-1] 
x[0] = 0