python - 如何检查 numpy 数组是否包含数字列表?
问题描述
我有一个 numpy 数组,里面有另一个数组,我想知道如何检查另一个 numpy 数组(或列表)的所有值是否与第一个相同。
array1 = np.array([[11,3,4,6,7,8,9,1,2], [6,7,2,1,9,5,3,4,8]])
array2 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
我试图用它来做,array2 in np.sort(array1)
但它返回 True。
我想在数组 [11,3,4,6,7,8,9,1,2] 的第一个数组中获取 False,因为数字 5 不在其中,而在第二个数组 [1, 2, 3 中为 True , 4, 5, 6, 7, 8, 9]。感谢您花时间阅读并尝试提供帮助。
解决方案
您当前正在检查是否有任何数组匹配。
如果你想要 False 和 True,你需要一个元素比较。通过列表理解完成:
[all(array2 == arr) for arr in np.sort(array1)]
这使[False, True]
之所以存在,all()
是因为仅检查array2 == arr
将为每个条目提供一个 True/False 列表,但我们想要一个完整的匹配
推荐阅读
- android - 未解决的参考:Jetpact Compose 1.0.0-beta07 中的 vectorResource 和 imageResources
- delphi - Delphi - libssh2.dll 加载问题
- vue.js - 如果通过道具的数据项为空,如何使用自定义 v-data-table 处理 v-skeleton-loader?
- android - 如何在proguard android中保留外部库
- azure - 删除 VM 后 Azure 是否需要整理?
- python - 如何从等高线图的结果中确定缺失值?
- python - “似乎 scikit-learn 没有正确构建”或“虽然我安装了 'scikit-learn',但无法导入它”
- javascript - 如何在悬停时为 svg 图标设置动画,同时它出现在视口中?
- flask - TypeError:join() 参数必须是 str 或 bytes,而不是 'FileStorage'
- c# - 通过 MudBlazor 小吃店选项操作
作为函数参数