python - 获取布尔数组,指示数组中哪些元素属于列表
问题描述
这似乎是一个简单的问题,但我很长一段时间以来一直在努力解决错误。想象一个数组
a = np.array([2,3,4,5,6])
我想测试数组中的哪些元素属于另一个列表
[2,3,6]
如果我做
a in [2,3,6]
Python 引发“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”
作为回报,我想得到一个类似布尔数组
array([ True, True, False, False, True], dtype=bool)
解决方案
用于np.isin
创建布尔掩码,然后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]])
推荐阅读
- visual-studio - 视觉工作室未更新
- function - Vue3/Vite 中的方法
- html - 指向 ID 的超链接无响应
- kotlin - 具有泛型的 Kotlin 本地函数
- javascript - 如何在jquery中连接javascript变量?
- ios - 使用 HTTPS 在本地环境中的 iPhone Safari 上运行 React App
- c# - 无法在 ToolTip 中绑定
- javascript - 如何在 react-native 中制作商务时间日历
- python - 简单 Django 2.2 应用程序中的页面未找到 (404) 错误
- python - 如何将自定义表情符号添加到嵌入式消息中?