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: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()"。我可以通过先将数组转换为字符串或列表来解决此问题,但是有没有更好(更符合Python风格)的方法?
a in my_list
)成功的原因是由于短路:如果数组中的每个元素在第一次检查时都为真,则不会检查列表的其余部分,这是它成功的原因吗? - Chris Midgleyany()
函数也是短路计算)。此外,如果所有元素都为True,则布尔值为True是明确无误的。但是,如果是True和False的混合,则NumPy无法决定隐式转换,从而引发错误。 - kennytm