我会喜欢在数组中间的掩码10值,并与10最大和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)到中心去
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]))执行前提
c = ma.masked_where(p, z, copy=True) 最后一个是工作,我也不知道如何将这两个结果结合起来。我引用两个结果的掩码
如果你能帮我的话。
发布于 2014-02-20 20:14:45
好的,我找到了解决方案,我想是很重的,任何人都能找到更好的
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)我解决的问题是,将两个掩码组合在一起,但你需要先反转,因为我使用OR操作。
c =np.ma.mask_or(~a.mask, ~b.mask)和结果
print np.ma.masked_array(z,~c)https://stackoverflow.com/questions/21906680
复制相似问题