Вы можете использовать np.unique
для извлечения уникальных значений из первого столбца, а затем использовать логическую маску вдоль первой оси:
np.stack([(x, a[a[:, 0] == x, 1].min()) for x in np.unique(a[:, 0])])
В качестве альтернативы, если у вас есть доступ к pandas
, вы может создать DataFrame и использовать grouby
в первом столбце:
import pandas as pd
result = pd.DataFrame(a).groupby(0).min().values
Код, используемый, например, для установки a
:
import numpy as np
a = np.array([[1, 1, 1, 2, 2, 2],
[1, 2, 3, 4, 5, 6]]).T