Spec-Zone.ru › NumPy 2.0

numpy.unique

numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None, *, equal_nan=True)[source]

Нахождение уникальных элементов массива.

Возвращает отсортированные уникальные элементы массива. Помимо уникальных элементов, доступны три дополнительных выходных параметра:

  • индексы входного массива, дающие уникальные значения
  • индексы уникального массива, восстанавливающие входной массив
  • количество появлений каждого уникального значения во входном массиве
Параметры:
ararray_like

Входной массив. Если axis не указано, он будет сглажен, если он не является одномерным.

return_indexbool, optional

Если True, также возвращаются индексы ar (вдоль указанной оси, если она предоставлена, или в сглаженном массиве), которые приводят к уникальному массиву.

return_inversebool, optional

Если True, также возвращаются индексы уникального массива (для указанной оси, если она предоставлена), которые могут быть использованы для восстановления ar.

return_countsbool, optional

Если True, также возвращается количество появлений каждого уникального элемента в ar.

axisint or None, optional

Ось для обработки. Если None, ar будет сглажен. Если целое число, подмассивы, индексированные данной осью, будут сглажены и обработаны как элементы одномерного массива с размерностью заданной оси, см. примечания для более подробной информации. Массивы объектов или структурированные массивы, содержащие объекты, не поддерживаются, если используется ключевое слово axis. По умолчанию равно None.

Добавлена в версии 1.13.0.

equal_nanbool, optional

Если True, несколько значений NaN в возвращаемом массиве сводятся к одному.

Добавлена в версии 1.24.

Возвращаемое значение:
uniquendarray

Отсортированные уникальные значения.

unique_indicesndarray, optional

Индексы первых появлений уникальных значений в исходном массиве. Предоставляется только если return_index равно True.

unique_inversendarray, optional

Индексы для восстановления исходного массива из уникального массива. Предоставляется только если return_inverse равно True.

unique_countsndarray, optional

Количество появлений каждого уникального значения в исходном массиве. Предоставляется только если return_counts равно True.

Добавлена в версии 1.9.0.

См. также

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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.unique.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API