len([True for i in a if any([any(j == b[:, 0]) for j in i])])
这是我的一行代码。a
是一个多维列表,而 b
是一个nd.array。当我运行它时,它返回这个错误。
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
即使我使用了 any()
在每一个需要的地方。我的错误在哪里?
编辑:列表的值。
a = [[[[0, 0], [0, 0]]]]
b = np.array([[[[0, 0], [0, 0]], 0]])
这个问题是由以下方法产生的。
any(j == b[:, 0])
使用:
(j == b[:, 0]).any()
而不是使用:。同样的外 any()
. 注意到 any()
可以取一个可迭代的,这 np_array.any()
是numpy的一个函数。