numpy.unique
- numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)[source]
-
Нахождение уникальных элементов массива.
Возвращает отсортированные уникальные элементы массива. Помимо уникальных элементов, есть три дополнительных необязательных выхода:
- индексы входного массива, которые дают уникальные значения
- индексы уникального массива, которые восстанавливают входной массив
- количество раз, когда каждое уникальное значение встречается во входном массиве
- Параметры
-
- ararray_like
-
Входной массив. Если
axisне указан, он будет сглажен, если он не является одномерным. - return_indexbool, optional
-
Если True, также возвращаются индексы
ar(по указанной оси, если она задана, или в сглаженном массиве), которые приводят к уникальному массиву. - return_inversebool, optional
-
Если True, также возвращаются индексы уникального массива (для указанной оси, если она задана), которые могут быть использованы для восстановления
ar. - return_countsbool, optional
-
Если True, также возвращается количество раз, когда каждый уникальный элемент появляется в
ar.Новое в версии 1.9.0.
- axisint или None, необязательно
-
Ось для обработки. Если None,
arбудет сглажен. Если целое число, подмассивы, индексируемые данной осью, будут сглажены и обработаны как элементы одномерного массива с размерностью данной оси, см. примечания для получения более подробной информации. Массивы объектов или структурированные массивы, которые содержат объекты, не поддерживаются, если используется параметрaxis. По умолчанию равно None.Новое в версии 1.13.0.
- Возвращает
-
- uniquendarray
-
Отсортированные уникальные значения.
- unique_indicesndarray, optional
-
Индексы первых вхождений уникальных значений в исходном массиве. Предоставляется только если
return_indexравно True. - unique_inversendarray, optional
-
Индексы для восстановления исходного массива из уникального массива. Предоставляется только если
return_inverseравно True. - unique_countsndarray, optional
-
Количество раз, когда каждое из уникальных значений встречается в исходном массиве. Предоставляется только если
return_countsравно True.Новое в версии 1.9.0.
См. также
numpy.lib.arraysetops-
Модуль с рядом других функций для выполнения операций над множествами в массивах.
repeat-
Повторение элементов массива.
Примечания
При указании оси подмассивы, индексируемые осью, сортируются. Это делается путем приведения указанной оси к первому измерению массива (перемещение оси в первое измерение для сохранения порядка других осей) и затем сглаживания подмассивов в порядке C. Сглаженные подмассивы затем рассматриваются как структурированный тип, при этом каждый элементу присваивается метка, что в итоге приводит к одномерному массиву структурированных типов, которые можно рассматривать так же, как и любой другой одномерный массив. Результат заключается в том, что сглаженные подмассивы сортируются в лексикографическом порядке, начиная с первого элемента.
Примеры
>>> np.unique([1, 1, 2, 2, 3, 3]) array([1, 2, 3]) >>> a = np.array([[1, 1], [2, 3]]) >>> np.unique(a) array([1, 2, 3])
Возвращение уникальных строк 2D массива
>>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]]) >>> np.unique(a, axis=0) array([[1, 0, 0], [2, 3, 4]])
Возвращение индексов исходного массива, которые дают уникальные значения:
>>> a = np.array(['a', 'b', 'b', 'c', 'a']) >>> u, indices = np.unique(a, return_index=True) >>> u array(['a', 'b', 'c'], dtype='<U1') >>> indices array([0, 1, 3]) >>> a[indices] array(['a', 'b', 'c'], dtype='<U1')
Восстановление входного массива из уникальных значений и инверсии:
>>> a = np.array([1, 2, 6, 4, 2, 3, 2]) >>> u, indices = np.unique(a, return_inverse=True) >>> u array([1, 2, 3, 4, 6]) >>> indices array([0, 1, 4, 3, 1, 2, 1]) >>> u[indices] array([1, 2, 6, 4, 2, 3, 2])
Восстановление входных значений из уникальных значений и подсчетов:
>>> a = np.array([1, 2, 6, 4, 2, 3, 2]) >>> values, counts = np.unique(a, return_counts=True) >>> values array([1, 2, 3, 4, 6]) >>> counts array([1, 3, 1, 1, 1]) >>> np.repeat(values, counts) array([1, 2, 2, 2, 3, 4, 6]) # original order not preserved
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.unique.html