这似乎是一个简单的问题,但我在很长一段时间内都在为错误而苦苦挣扎。
想象一个数组
a = np.array([2,3,4,5,6])
我想测试数组中的哪些元素属于另一个列表
[2,3,6]
如果我做
a in [2,3,6]
Python 引发“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”
作为返回,我想得到一个类似 bool 数组的
array([ True, True, False, False, True], dtype=bool)
最佳答案
使用 np.isin
创建一个 bool 掩码,然后使用 np.argwhere
在此掩码上查找非零数组元素的索引:
m = np.isin(a, lst)
indices = np.argwhere(m)
# print(m)
array([ True, True, False, False, True])
# print(indices)
array([[0], [1], [4]])
关于python - 获取 bool 数组,指示数组中哪些元素属于列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62370500/