首页 > 解决方案 > 格式化和比较数组 Numpy Python

问题描述

我正在尝试检查格式化的向量a_and_b[::2]是否等同于a,但它给了我一个错误ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()。我将如何解决这个问题并获得预期的输出?

import numpy as np 

a = np.array([5,32,1,4])
b = np.array([1,5,11,3])
a_and_b = np.array([5,1,32,5,1,11,4,3])
result = 'yes'  if a_and_b[::2] == a else 'no'

预期输出:

yes

标签: pythonarraysnumpyformatcompare

解决方案


你可能想用这个:

(a_and_b[::2] == a).all()

True如果每个数组的所有元素都相等,它将返回,因为:

>>> a_and_b[::2] == a
array([ True,  True,  True,  True])

True返回/的数组Falseall()将指示该数组的所有元素是否都是True

所以试试:

result = 'yes' if (a_and_b[::2] == a).all() else 'no'

推荐阅读