获取满足某些条件的numpy数组的元素

时间:2018-10-03 14:21:26

标签: python numpy

我有一个充满整数的numpy数组,比如

[[1,2],[3,4]]

如果元素满足一个列表,我想得到一个包含1的二进制数组,否则为0。

如果我写

condition = arr == 2

我知道

[[false, true], [false, false]]

这就是我想要的。

但是如果我要保留元素2和3怎么办? 我尝试过

condition = arr in [2,3]

但是它不起作用,我得到了

  

ValueError:具有多个元素的数组的真值不明确。使用a.any()a.all()

我想在任何可能的列表中这样做。

有什么有效的方法可以做到吗? 我知道该怎么做,但是我需要有效率。

非常感谢您!

2 个答案:

答案 0 :(得分:3)

怎么样:

np.isin(arr,[2,3])

输出:

array([[False,  True],
       [ True, False]])

答案 1 :(得分:0)

我的2美分。 :-)

arr = np.array([[1,2],[3,4]])
np.logical_or(arr==2,arr==3) 

输出:

array([[False,  True],
      [ True, False]])