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

时间:2020-05-28 17:33:08

标签: python numpy-ndarray

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]])

1 个答案:

答案 0 :(得分:2)

问题是由以下原因引起的:

/(?=^.{1,64}@.{1,64}$)^(YOUR REGEX)$/

使用:

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

相反。外部(j == b[:, 0]).any() 相同。请注意,any()可以迭代,any()是numpy的函数。