我有三个 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
.