python - 如何检查 numpy 数组列表是否包含给定的测试数组?
问题描述
我有一个numpy
数组列表,比如说,
a = [np.random.rand(3, 3), np.random.rand(3, 3), np.random.rand(3, 3)]
我有一个测试数组,比如说
b = np.random.rand(3, 3)
我想检查是否a
包含b
。然而
b in a
引发以下错误:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我想要的正确方法是什么?
解决方案
您可以只制作一组形状(3, 3, 3)
:a
a = np.asarray(a)
然后将其与b
(我们在这里比较浮点数,所以我们应该使用isclose()
)
np.all(np.isclose(a, b), axis=(1, 2))
例如:
a = [np.random.rand(3,3),np.random.rand(3,3),np.random.rand(3,3)]
a = np.asarray(a)
b = a[1, ...] # set b to some value we know will yield True
np.all(np.isclose(a, b), axis=(1, 2))
# array([False, True, False])
推荐阅读
- c# - 如何获取实现接口的类的名称?
- django - 在视图中使用 Django 模型作为全局变量有什么影响?
- batch-file - 如何将 -D vm args 添加到 tomcat 战争文件
- r - 使用 drc 包在 ggplot 中绘制剂量反应曲线时出错
- python - 有没有办法将图像存储在缓存中,而不是每次都从文件中读取?
- python - 获取同情矩阵的形状
- sql-server - SQL Server:INTERSECT 的替代品
- python - 按钮在 XY 点不可点击,其他元素会收到点击。在页面刷新后的 selenium 中,添加了参数 headless
- linux - 分别将 file1 的 1,2,5 列与 file2 的 1,2,3 列匹配,输出应该与文件 2 中的行匹配。第二个文件是压缩文件 .gz
- java - 作为参数的角色列表