2011-08-21 97 views
1

我有一個numpy數組,我想刪除數組的前3個元素。我想這個解決方案:從數組中刪除元素

  a = np.arange(0,10) 
      i=0 
      while(i<3): 
      del a[0] 
      i=i+1 

這給了我一個錯誤,「ValueError異常:不能刪除數組元素」。我不明白爲什麼會這樣。我會感謝幫助,謝謝!

回答

9

Numpy數組的大小是固定的,因此你不能簡單地從它們中刪除一個元素。達到你想要什麼,最簡單的方法是使用切片:

a = a[3:] 

這將創建起與原陣列的第四元素的新數組。

對於某些情況,切片是不夠的。如果你想創建原始數組由特定元素的子數組,你可以使用另一個陣列來選擇指數:

>>> a = arange(10, 20) 
>>> a[[1, 4, 5]] 
array([11, 14, 15]) 

所以基本上,a[[1,4,5]]將返回由元素1,4和數組5原始數組。

+0

我想你是指'[3:]'...? –

+0

@尼爾:你說得對。這實際上是我的第一個版本,但之後,出於某種扭曲的原因,我將其更改爲4. –

+0

謝謝!這工作:) – dawnoflife

1

numpy數組不支持元素刪除。你爲什麼不使用切片來實現你想要的?

a = a[3:]