首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中间的numpy数组中屏蔽10个值

在中间的numpy数组中屏蔽10个值
EN

Stack Overflow用户
提问于 2014-02-20 19:39:56
回答 1查看 122关注 0票数 0

我会喜欢在数组中间的掩码10值,并与10最大和10最小值混合。

创建数组

代码语言:javascript
复制
  z = np.random.random((10,10))

已排序

代码语言:javascript
复制
  sorted = np.sort(z,axis=None)

逻辑前提10最大值和10分钟

代码语言:javascript
复制
  p=np.logical_and(z >= sorted[10], z <= sorted[-10])

执行前提

代码语言:javascript
复制
   c = ma.masked_where(p, z, copy=True)

到中心去

代码语言:javascript
复制
 pos_1=len(sorted)/2-5
 pos_2=len(sorted)/2+5

中间的逻辑前提10值:

代码语言:javascript
复制
 p=np.logical_or(z < float(sorted[pos_1]) , z > float(sorted[pos_2]))

执行前提

代码语言:javascript
复制
 c = ma.masked_where(p, z, copy=True) 

最后一个是工作,我也不知道如何将这两个结果结合起来。我引用两个结果的掩码

如果你能帮我的话。

EN

回答 1

Stack Overflow用户

发布于 2014-02-20 20:14:45

好的,我找到了解决方案,我想是很重的,任何人都能找到更好的

代码语言:javascript
复制
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操作。

代码语言:javascript
复制
 c =np.ma.mask_or(~a.mask, ~b.mask)

和结果

代码语言:javascript
复制
 print np.ma.masked_array(z,~c)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21906680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档