2014-07-01 3 views
1

I 다음 NumPy와 배열을 가지고마스킹 두 값 NumPy와 배열

array(['NONRBP', 'RBP', 'NONRBP', 'RBP'], dtype=object) 

할 원하는 것은 NONRBP에 RBP 및 0 내지 1 값을주는 상기 어레이를 마스크하고, 그 결과는 다음과 같습니다 :

array([0, 1, 0, 1]) 

어떻게해야합니까?

답변

1

.

더 NumPy와 같은 솔루션을
>>> from numpy import array 
>>> a=array(['NONRBP', 'RBP', 'NONRBP', 'RBP'], dtype=object) 
>>> mask=array([int(x=='RBP') for x in a]) 
>>> mask 
array([0, 1, 0, 1]) 
1

반드시 필수 항목은 아닙니다. 당신은 array의 생성자에 입력 지능형리스트를 사용할 수 있습니다 : 난 그냥 여기에 지능형리스트를 사용하십시오

array( [(1 if x == 'RBP' else 0) for x in l] ) 
4

을 수행 할 수 있습니다하십시오 NumPy와를 해결하기 위해 NumPy와를 사용하여

a[:] = (a == 'RBP').astype(int) 
+0

1 :

a = array(['NONRBP', 'RBP', 'NONRBP', 'RBP'], dtype=object) mask = (a == 'RBP').astype(int) 

당신과 장소에서 작업을 할 수도 있습니다 문제 –