Python之所以做出选择
bool([False,True])是
True因为(说)任何非清空列表都具有布尔值True。
Numpy做出
bool(np.array([False,True]))应该引发ValueError的选择。Numpy是从一些用户的角度设计的,一些用户可能想知道数组中的 任何
元素是否为True,而其他用户可能想知道数组中的 所有
元素是否为True。由于用户的愿望可能有冲突,因此NumPy拒绝猜测。它会引发ValueError并建议使用
np.any或
np.all(尽管如果您希望复制类似Python的行为,则可以使用
len)。
在评估时
c inl,Python会
c以
l开头的每个元素进行比较
a。它评估
bool(c==a)。我们得到
bool(np.array([TrueTrue])),它引发ValueError(由于上述原因)。
由于numpy拒绝猜测,因此您必须具体。我建议:
import numpy as npa=np.array((2,1))b=np.array((3,3))c=np.array((2,1))l=[a,b]print(any(np.all(c==elt) for elt in l))# True
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)