2014-07-21 3 views
2

"데이터"로 numpy 배열이 있습니다. 6 번째 필드를 제외한 모든 필드를 가져 오려고합니다. 현재 다음 코드를 사용하고 있습니다 :파이썬 numpy 배열에서 여러 열을 얻는 방법

x = data[:,[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17]] 

목적을 해결하고 있지만 올바른 방법이 아닌 것 같습니다.

내가 좋아하는, 그것을 할 많은 다른 방법을 시도 :

x = data[:, [:,6 and 7,:]], 
    x = data[:, [:,6 or 7,:]], etc 

하지만 아무것도 작동하는 것 같다.

다른 여러 곳에서도 확인했지만 해결책을 찾지 못했습니다. 쉬운 방법을 제안하십시오.

답변

1

numpy.delete 함수는 원하는 축을 따라 지정된 열이 삭제 된 새 배열을 반환합니다.

x = numpy.delete(data, 6, axis=1) 
0

이 방법에 대해 : 더 일반적인 대답을

cols = range(0, 18) 
cols.remove(6) 
x = data[:, cols] 
1

(여러 열을 폐기해야하는 경우) :

import numpy 
x = numpy.array(data)[:,range(0,6)+range(7,18)] 
다음은 위의 게시 된 첫 번째 문에 해당
0

또 다른 방법은 다음과 같습니다 (목록 이해 사용)

x = data[:,[index for index in range(18) if index not in [6]]] 

또한 더 많은 값을 추가하여 쉽게 확장 할 수 있습니다.

관련 문제