6

Как подсчитать количество вхождений определенного элемента в ndarray?

17

Как посчитать количество 0 и 1 в следующем массиве?

y = np.array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])

При попытке использовать метод y.count(0) возникает ошибка:

numpy.ndarray object has no attribute count

Как правильно подсчитать количество нулей и единиц в массиве с использованием NumPy?

5 ответ(ов)

2

Лично я бы использовал следующий подход:

import numpy as np
y = np.array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])
num_zeros = (y == 0).sum()
num_ones = (y == 1).sum()

Таким образом, num_zeros будет содержать количество нулей в массиве y, а num_ones — количество единиц. Это простой и эффективный способ подсчета значений в массиве.

0

Для массива, содержащего только нули и единицы, использование np.sum(y) даст вам количество единиц, так как сумма всех единиц будет равна количеству этих единиц. Аналогично, для подсчета количества нулей вы можете использовать np.sum(1 - y), что также сработает, так как все нули преобразуются в единицы.

Если вам нужно что-то более общее и вы хотите подсчитать количество ненулевых элементов (возможно, это 2 или 3, а не только 0 и 1), вы можете воспользоваться np.count_nonzero(y) — эта функция вернет количество всех ненулевых элементов в массиве.

Однако если ваши требования к подсчету более сложные и вы хотите получить детали, то в таком случае стоит обратиться к модулю collections. Например:

import collections
collections.Counter(y)

Это создаст объект Counter, который будет вести статистику по элементам массива и будет работать как словарь. Вы можете легко получить количество нулей или единиц следующим образом:

collections.Counter(y)[0]  # вернет 8

Таким образом, вы сможете получить необходимую информацию по количеству различных элементов в вашем массиве.

0

Вы можете преобразовать ваш массив y в список l, а затем использовать метод count() для подсчета элементов. Вот пример кода:

import numpy as np

y = np.array([0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1])
l = list(y)
count_of_ones = l.count(1)
count_of_zeros = l.count(0)

print("Количество единиц:", count_of_ones)  # Вывод: 4
print("Количество нулей:", count_of_zeros)  # Вывод: 8

Таким образом, после преобразования массива в список, вы можете легко подсчитать количество единиц и нулей.

0

Если вы точно знаете, какое число вам нужно, вы можете использовать следующий код:

lst = np.array([1, 1, 2, 3, 3, 6, 6, 6, 3, 2, 1])
(count_of_twos = (lst == 2).sum()

Этот код вернет количество раз, когда число 2 встречается в вашем массиве.

0

Для подсчета количества вхождений определенного значения в массиве NumPy можно использовать функцию len. Рассмотрим следующий пример:

A = np.array([1, 0, 1, 0, 1, 0, 1])

Допустим, мы хотим посчитать количество нулей в массиве.

A[A == 0]  # Возвращает массив, где элементы равны 0, например: array([0, 0, 0])

Теперь окружим это выражение функцией len, чтобы получить количество нулей:

len(A[A == 0])  # 3

Также можно посчитать количество единиц:

len(A[A == 1])  # 4

И если вы захотите проверить наличие элемента, которого нет в массиве, например 7:

len(A[A == 7])  # 0, потому что такого элемента нет.

Таким образом, мы успешно использовали len для подсчета вхождений элементов в массиве.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь