Функция unique
Функция unique возвращает отсортированный массив
уникальных значений из переданного массива. Первым параметром
функция принимает массив. Дополнительными параметрами можно
управлять возвратом индексов, количеством вхождений и
инвертированием результата.
Синтаксис
np.unique(arr, [return_index, return_inverse, return_counts, axis])
Пример
Давайте найдем уникальные элементы в одномерном массиве:
import numpy as np
arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
res = np.unique(arr)
print(res)
Результат выполнения кода:
[1 2 3 4]
Пример
Теперь получим не только уникальные значения, но и их индексы в исходном массиве:
import numpy as np
arr = np.array([5, 1, 3, 1, 5, 2, 3])
values, indices = np.unique(arr, return_index=True)
print("Unique values:", values)
print("First indices:", indices)
Результат выполнения кода:
"Unique values: [1 2 3 5]"
"First indices: [1 5 2 0]"
Пример
Получим уникальные значения и количество их вхождений:
import numpy as np
arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
values, counts = np.unique(arr, return_counts=True)
print("Values:", values)
print("Counts:", counts)
Результат выполнения кода:
"Values: [1 2 3 4]"
"Counts: [1 2 3 4]"
Пример
Применим функцию к двумерному массиву без указания оси:
import numpy as np
arr = np.array([[1, 2, 3],
[3, 2, 1],
[1, 2, 3]])
res = np.unique(arr)
print(res)
Результат выполнения кода:
[1 2 3]
Пример
Найдем уникальные строки двумерного массива с помощью параметра axis:
import numpy as np
arr = np.array([[1, 2, 3],
[3, 2, 1],
[1, 2, 3]])
res = np.unique(arr, axis=0)
print(res)
Результат выполнения кода:
[[1 2 3]
[3 2 1]]
Пример
Получим индексы для восстановления исходного массива из уникальных значений:
import numpy as np
arr = np.array([4, 2, 4, 1, 2, 4])
values, inverse = np.unique(arr, return_inverse=True)
print("Unique values:", values)
print("Inverse indices:", inverse)
print("Reconstructed:", values[inverse])
Результат выполнения кода:
"Unique values: [1 2 4]"
"Inverse indices: [2 1 2 0 1 2]"
"Reconstructed: [4 2 4 1 2 4]"
Пример
Найдем уникальные элементы в массиве строк:
import numpy as np
arr = np.array(['a', 'b', 'a', 'c', 'b', 'b', 'd'])
res = np.unique(arr)
print(res)
Результат выполнения кода:
['a' 'b' 'c' 'd']
Смотрите также
-
функцию
sort,
которая сортирует массив -
функцию
isin,
которая проверяет вхождение элементов в массив -
функцию
intersect1d,
которая находит пересечение двух массивов -
функцию
setdiff1d,
которая находит разность двух массивов