Если у вас есть зависимость от scipy, вы можете использовать встроенную функцию scipy.stats.mode вдоль оси 0 сгруппированных массивов. В противном случае вы можете использовать numpy .unique или collection.Counter вдоль столбцов сложенного массива.
Scipy Mode
import numpy as np
from scipy.stats import mode
from collections import Counter
a = np.array([1,2,4,4])
b = np.array([1,3,4,3])
c = np.array([1,2,3,3])
m = np.vstack([a,b,c])
mode(m, axis=0)[0]
array([[1, 2, 4, 3]])
Numpy Уникальный
modes_numpy = []
for c in m.T:
vals, counts = np.unique(c, return_counts=True)
index = np.argmax(counts)
modes_numpy.append(vals[index])
modes_numpy
[1, 2, 4, 3]
Счетчик коллекций
modes_counter = []
for c in m.T:
modes_counter.append(Counter(c).most_common(1)[0][0])
modes_counter
[1, 2, 4, 3]