2011-08-21 6 views
1

배열 수가 많아서 배열의 처음 세 요소를 지우고 싶습니다.배열에서 요소 지우기

이 나에게 그 오류 제공
  a = np.arange(0,10) 
      i=0 
      while(i<3): 
      del a[0] 
      i=i+1 

"에 ValueError가 : 배열 요소를 삭제할 수 없습니다"나는이 솔루션을 시도했다. 나는 이것이 왜 그런지 이해하지 못한다. 도와 주셔서 감사합니다!

답변

9

너피 (Numpy) 배열은 크기가 고정되어 있으므로 단순히 요소를 삭제할 수 없습니다.

a = a[3:] 

이 원래 배열의 4 번째 요소로 시작하는 새 배열을 만들 것입니다 : 당신이 원하는 것을 달성하는 가장 간단한 방법은 슬라이스를 사용하는 것입니다.

특정 시나리오의 경우 슬라이스로는 충분하지 않습니다. 원래 배열에서 특정 요소로 구성된 부분 배열을 만들려면, 당신은 인덱스를 선택하는 또 다른 배열을 사용할 수 있습니다 : 그러니까 기본적으로

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

a[[1,4,5]]는 요소 1,4 및 구성 배열을 반환합니다 5 원래 배열의.

+0

나는 [3 :]을 (를) 의미한다고 생각합니까? ...? –

+0

@Neil : 네 말이 맞아. 그것은 실제로 첫 번째 버전 이었지만, 뒤틀린 이유로 4로 변경했습니다. –

+0

고마워요! 이것은 작동합니다 : – dawnoflife

1

numpy 배열은 요소 삭제를 지원하지 않습니다. 당신이 원하는 것을 얻기 위해 슬라이싱을 사용하는 것이 어떻습니까?

a = a[3:]