gpt4 book ai didi

python - 查找列表是否包含特定的 numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:47 25 4
gpt4 key购买 nike

import numpy as np

a = np.eye(2)
b = np.array([1,1],[0,1])

my_list = [a, b]

a in my_list 返回 true,但 b in my_list 返回“ValueError:具有多个元素的数组的真值是模棱两可。使用 a.any() 或 a.all()”。我可以通过先将数组转换为字符串或列表来解决这个问题,但是有更好的(更 Pythonic 的)方法吗?

最佳答案

问题是在 numpy 中,== 运算符返回一个数组:

>>> a == b
array([[ True, False],
[ True, True]], dtype=bool)

您使用 .array_equal() 将数组与纯 bool 值进行比较。

>>> any(np.array_equal(a, x) for x in my_list)
True
>>> any(np.array_equal(b, x) for x in my_list)
True
>>> any(np.array_equal(np.array([a, a]), x) for x in my_list)
False
>>> any(np.array_equal(np.array([[0,0],[0,0]]), x) for x in my_list)
False

关于python - 查找列表是否包含特定的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17702855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com