В процессе работы с numpy библиотекой в Python, часто возникает необходимость подсчитать количество определенных элементов в массиве. Например, имеется массив, содержащий некоторые элементы:
import numpy as np arr = np.array([2, 3, 2, 2, 5, 3, 2, 4, 5, 2, 5, 5, 5])
И задача состоит в том, чтобы подсчитать количество вхождений элемента 2
в данный массив.
Попытка использовать метод count
приводит к ошибке, поскольку данный метод отсутствует в классе numpy.ndarray
:
arr.count(2)
Ошибка:
AttributeError: 'numpy.ndarray' object has no attribute 'count'
Вместо этого, можно использовать функцию numpy.count_nonzero()
, которая подсчитывает количество ненулевых элементов в массиве. Для подсчета количества определенного элемента в массиве, можно сначала преобразовать массив в булевый, где True
обозначает места, где находится интересующий нас элемент, а False
— все остальные. Затем применить numpy.count_nonzero()
к получившемуся массиву.
Пример подсчета количества элементов 2
в массиве arr
:
import numpy as np arr = np.array([2, 3, 2, 2, 5, 3, 2, 4, 5, 2, 5, 5, 5]) # Преобразование массива в булев bool_arr = (arr == 2) # Подсчет количества искомых элементов count = np.count_nonzero(bool_arr) print(count) # Выводит: 5
Таким образом, с помощью функции numpy.count_nonzero()
можно подсчитать количество определенных элементов в массиве типа ndarray
.
Добавить комментарий