python - 如何使用 numpy.delete 过滤项目? (为某些人工作,但不为其他人工作)

标签 python numpy indices

我的目标是首先过滤掉射电通量中的所有0.值以及赤经(RA)和距离(依赖于红移/z)中的相应(相同索引)数据,然后将这些数组分为两组, radio 大声(radioflux > 1)和 radio 安静(radioflux <= 1)。该代码工作正常,直到我尝试从 RA 和距离数组中删除 radio 安静类星体索引以获取剩余的 radio 响亮类星体索引,反之亦然以获得 radio 安静类星体索引。这些是当我检查数组中有多少个值时得到的值:

  • radio 通量:166583
  • radio 剪辑:12464
  • 广播音量:239
  • radio 静音:12225
  • 距离缩短:12464
  • 角度切割:12464
  • 距离响度:12120
  • 安静距离:12424
  • 角度大声:12120
  • 角度安静:12424

应该是:

  • radio 通量:166583
  • radio 剪辑:12464
  • 广播音量:239
  • radio 静音:12225
  • 距离缩短:12464
  • 角度切割:12464
  • 距离响度:239
  • 安静距离:12225
  • 角度响度:239
  • 安静角度:12225

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

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)

最佳答案

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

  1. 您使用 np.where 查找原始 radiolux 数组上的索引,然后使用这些索引从 radiocut 中删除元素>,这是 radioflux 的过滤版本。您没有收到 IndexError 的事实表明这是一个转录错误,但您可能需要仔细检查。

  2. 过滤 distancecutanglecut 数组时,您没有使用 loudquiet数组,保存索引,而 radioloudradioquiet 保存 radio 通量值。

除此之外,使用 numpy 执行此操作的规范方法是使用 bool 索引,并且看起来像这样:

cut_mask = values != searchval
radiocut = radioflux[cut_mask]
loud_mask = radiocut > searchvalquietloud
quiet_mask = ~loud_mask
radioloud = radiocut[loud_mask]
radioquiet = radiocut[quiet_mask]

然后您将按照以下方式处理其他两个数组:

distancecut = distance[cut_mask]
distanceloud = distancecut[loud_mask]
distancequiet = distancecut[quiet_mask]

对于角度也类似。

关于python - 如何使用 numpy.delete 过滤项目? (为某些人工作,但不为其他人工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196725/

相关文章:

python - 如何列出 Django 中所有与表单相关的错误?

python - 在 CVXPY 中将两个变量相乘

time-series - 谷歌地球引擎: how to map a function over a collection of all Landsat sensors to create NDVI timeseries

list - 得到 "Fatal error: Index out of range": show index in list item for swiftui

python - numpy - 矩阵多个 3x3 和 100x100x3 数组?

java - 如何正确使用 Hibernate @Index 注解?

python - 在 python 中导入错误连接的 JSON

python - 使用 BeautifulSoup 仅从 blogspot 提取特定部分的链接

Python/Pandas - 用另一个数据框中的值替换一个数据框中的元素

arrays - 在 Python 中乘以矩阵数组的最快方法(numpy)