我正在尝试查找numpy数组列表中是否存在numpy数组,如果是,则打印'Yes'。我的数组和数组列表看起来像这样:
many = [np.array([23, 34, 12]), np.array([23, 34, 23]), np.array([45, 23, 48])]
test = np.array([23, 34, 12])
但是我按照建议使用.all()的每次尝试都似乎不起作用。这是我的尝试:
if np.array([23, 34, 12]) in many:
print('yes')
if np.all(np.array([23, 34, 12])) in many:
print('yes')
if np.array([23, 34, 12]).all() in many:
print('yes')
每次出现以下错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我不明白要求我在这里使用.all()的方式。
任何帮助将不胜感激
这是numpy
如何处理比较运算符==
的烦人的副作用。
考虑此:
>>> print(1 == np.array([1,2,3]))
[ True False False]
显然,数组np.array([1,2,3])
不是1
,但是表达式计算的是,如果数组上的所有元素都是1
,并且结果是一个包含布尔值的数组。
这会满足您的需求,请记住:
if any((test==a).all() for a in many):
print('yes')