为什么这一行会导致一个布尔错误?

问题描述 投票:0回答:1
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() 在每一个需要的地方。我的错误在哪里?

编辑:列表的值。

  1. a = [[[[0, 0], [0, 0]]]]
  2. b = np.array([[[[0, 0], [0, 0]], 0]])
python numpy-ndarray
1个回答
2
投票

这个问题是由以下方法产生的。

any(j == b[:, 0])

使用:

(j == b[:, 0]).any()

而不是使用:。同样的外 any(). 注意到 any() 可以取一个可迭代的,这 np_array.any() 是numpy的一个函数。

© www.soinside.com 2019 - 2024. All rights reserved.