要求:
我有两个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
中。
需要注意的是,要求arr1
和arr2
的维度相同,否则会引发IndexError
异常。