numpy
массивы должны иметь определенную форму, поэтому, если ваши данные имеют только 1
значение для некоторых строк и 2
или более для других, то этого не будет. Обходной путь - заполнить массив известным значением, например. np.nan
.
В этом случае np.unique
рассортирует все за вас. Если вы используете его аргумент axis
. В этом случае вам нужны уникальные значения для каждой строки, поэтому мы используем axis=1
:
arr = np.array([[3, 3, 3, 3],
[3, 3, 3, 3],
[3, 3, 2, 2],
[2, 2, 2, 2],
[2, 2, 2, 2]])
np.unique(arr, axis=1)
>>> array([[3, 3],
[3, 3],
[2, 3],
[2, 2],
[2, 2]])
Результатом является массив с правильными уникальными значениями для каждой строки, хотя некоторые из них дублируются, но это цена за массив.