首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用numpy.delete筛选项?(为一些人工作,而不是为另一些人工作)

如何使用numpy.delete筛选项?(为一些人工作,而不是为另一些人工作)
EN

Stack Overflow用户
提问于 2014-06-13 02:17:25
回答 1查看 101关注 0票数 1

我的目标是首先过滤掉所有的0值。在右扬升(RA)和距离(依赖红移/z)的无线电流量和相应的(相同指数)数据中,将这些阵列分成两组,无线电响亮(无线电流量> 1)和无线电安静(无线电流量<= 1)。代码运行良好,直到我尝试从RA和距离数组中删除无线电静音类星体索引,以获得其余的无线电大声索引,反之亦然,以获得无线电静音索引。当我检查一个数组中有多少个值时,会得到以下值:

  • 无线电流量: 166583
  • 无线电剪辑: 12464
  • 无线电响声: 239
  • 无线电静音: 12225
  • 距离切割: 12464
  • 角度切割: 12464
  • 距离响声: 12120
  • 距离静音: 12424
  • 角响声: 12120
  • 角度静音: 12424

它应该是:

  • 无线电流量: 166583
  • 无线电剪辑: 12464
  • 无线电响声: 239
  • 无线电静音: 12225
  • 距离切割: 12464
  • 角度切割: 12464
  • 距离响声: 239
  • 距离静音: 12225
  • 角响声: 239
  • 角度静音: 12225

我的代码片段:(前面已经定义了所有使用的变量/数组名称)

代码语言:javascript
运行
复制
values = radioflux
searchval = 0
searchvalquietloud = 1


indices = np.where(values == searchval)[0]
radiocut = np.delete(radioflux,indices)


quiet = np.where(values <= searchvalquietloud)[0]
radioloud = np.delete(radiocut,quiet)

loud = np.where(values > searchvalquietloud)[0]
radioquiet = np.delete(radiocut,loud)

distance = np.multiply(redshift,dist)
angle = np.multiply(ra,radians)

distancecut = np.delete(distance,indices)
anglecut = np.delete(angle,indices)

distancequiet = np.delete(distancecut,radioloud)
distanceloud = np.delete(distancecut,radioquiet)

anglequiet = np.delete(anglecut,radioloud)
angleloud = np.delete(anglecut,radioquiet)
EN

回答 1

Stack Overflow用户

发布于 2014-06-13 04:50:50

在发布的代码中有几个大错误:

  1. 使用np.where查找原始radioflux数组上的索引,然后使用这些索引从radiocut中删除元素,这是radioflux的过滤版本。事实上,您没有得到一个IndexError,这表明这是一个转录错误,但您可能需要双重检查。
  2. 在过滤distancecutanglecut数组时,您不是使用包含索引的loudquiet数组,而是使用保存无线流量值的radioloudradioquiet

除此之外,使用numpy的常规方法是使用布尔索引,如下所示:

代码语言:javascript
运行
复制
cut_mask = values != searchval
radiocut = radioflux[cut_mask]
loud_mask = radiocut > searchvalquietloud
quiet_mask = ~loud_mask
radioloud = radiocut[loud_mask]
radioquiet = radiocut[quiet_mask]

然后将其他两个数组处理为:

代码语言:javascript
运行
复制
distancecut = distance[cut_mask]
distanceloud = distancecut[loud_mask]
distancequiet = distancecut[quiet_mask]

angle也是如此。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24196725

复制
相关文章

相似问题

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