我有一个充满整数的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()
我想在任何可能的列表中这样做。
有什么有效的方法可以做到吗? 我知道该怎么做,但是我需要有效率。
非常感谢您!
答案 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]])