numpy数组中根据判定条件提取索引位置

要求:

我有两个numpy类型的数组,第一个维度都是相同的,其中一个数组中都是0或者1,如果是1,则将两一个数组中的相同位置提取出来形成一个新的numpy数组

可以使用numpy的boolean indexing功能来完成此操作。假设第一个数组为arr1,第二个数组为arr2,可以使用如下代码来提取arr2中与arr1中值为1的位置对应的元素:

import numpy as np

# 生成示例数据
arr1 = np.array([1, 0, 1, 0, 1])
arr2 = np.array([3, 6, 1, 8, 2])

# 使用 boolean indexing 提取 arr2 中 arr1 值为1的位置对应的元素
result = arr2[arr1 == 1]

在上述代码中,arr1 == 1 会返回一个布尔类型的数组,表示arr1中哪些位置的元素值为1。然后将该布尔数组传递给arr2,通过boolean indexing提取arr2中与arr1中值为1的位置对应的元素,并将结果保存在result中。

需要注意的是,要求arr1arr2的维度相同,否则会引发IndexError异常。

posted @ 2023-03-10 16:36  海_纳百川  阅读(96)  评论(0编辑  收藏  举报
本站总访问量