python - 如何检查数组的所有值是否彼此相等?
问题描述
我想检查一个数组是否包含所有相同的值。一个例子如下。
array1 = np.array([1,1,1,1,1]) would return True
array2 = np.array([1,0,1,0,1]) would return False
我知道如何检查数组中的所有值是否都等于某个值。但我想检查数组中的所有值是否彼此相等,无论值是什么。有没有办法只用 Numpy 做到这一点而不创建函数?
解决方案
这也有效,并且似乎比其他一些方法稍微快一些:
>>> array1 = np.array([1,1,1,1,1])
>>> array2 = np.array([1,0,1,0,1])
>>> (array1 == array1[0]).all()
True
>>> (array2 == array2[0]).all()
False
与其他解决方案相比,10k 阵列的一些非常粗略的时序图:
- 这种方法:1.07 毫秒
np.isin()
: 1.23 毫秒set()
: 2.63 毫秒