2014-02-20 2 views
0

배열의 중간에 마스크 10 값을 넣고 10 개의 최대 값과 10 개의 값을 혼합합니다.중간의 numpy 배열의 마스크 10 값

배열

z = np.random.random((10,10)) 

에게

sorted = np.sort(z,axis=None) 

논리 전제 10 최대 10 분

p=np.logical_and(z >= sorted[10], z <= sorted[-10]) 

실행 전제

c = ma.masked_where(p, z, copy=True) 
01,235 정렬 된 만들기 16,

중간에

pos_1=len(sorted)/2-5 
pos_2=len(sorted)/2+5 

논리 전제 10 개 값을 중심으로 이동 :

p=np.logical_or(z < float(sorted[pos_1]) , z > float(sorted[pos_2])) 

마지막 내가 가입 방법을 몰라 ALSO 작동 전제를

c = ma.masked_where(p, z, copy=True) 

실행 TWO 결과. 나는 두 가지 결과의 마스크를 참조한다.

나를 도울 수 있다면. 내가 솔루션을 FINT

+0

c =np.ma.mask_or(~a.mask, ~b.mask) 

및 결과는 이름으로 사용하지 말아야의 내장 함수를 분류. – wwii

답변

1

OK, 내 생각은 무거운이며 모든 사람이 하나 더 나은

z = np.random.random((10,10)) 
p=np.logical_and(z >= sorted[10], z <= sorted[-10]) 
a = ma.masked_where(p, z, copy=True) 
p=np.logical_or(z < float(sorted[pos_1]) , z > float(sorted[pos_2])) 
b = ma.masked_where(p, z, copy=True) 

내가 해결 문제, 두 개의 마스크를 결합 찾을 수 있지만, 나는 함께 realease 때문에 당신이 첫번째 반전이 필요 OR 연산.

print np.ma.masked_array(z,~c)