如何计算 python 中三个数组中有多少元素等于数组之间同一位置的某个值?



我有三个 numpy 数组

a = [0, 1, 2, 3, 4]
b = [5, 1, 7, 3, 9]
c = [10, 1, 3, 3, 1]

我想计算 a、b、c 中有多少元素在相同位置等于 3,所以对于这个例子来说,将是 3。

一个优雅的解决方案是使用Numpy函数,例如:

np.count_nonzero(np.vstack([a, b, c])==3, axis=0).max()

详:

  • np.vstack([a, b, c])- 生成一个包含 3 行的数组,由 3 个源数组。
  • np.count_nonzero(...==3, axis=0)- 计算出现多少个值3在每一列中。对于您的数据,结果是array([0, 0, 1, 3, 0], dtype=int64).
  • max()- 在您的情况下,取最大价值3.

最新更新