首页 > 解决方案 > 如何检查数组的所有值是否彼此相等?

问题描述

我想检查一个数组是否包含所有相同的值。一个例子如下。

array1 = np.array([1,1,1,1,1]) would return True
array2 = np.array([1,0,1,0,1]) would return False

我知道如何检查数组中的所有值是否都等于某个值。但我想检查数组中的所有值是否彼此相等,无论值是什么。有没有办法只用 Numpy 做到这一点而不创建函数?

标签: pythonnumpy

解决方案


这也有效,并且似乎比其他一些方法稍微快一些:

>>> 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 毫秒

推荐阅读