Подсчет количества указанных c чисел в столбце массива numpy в python - PullRequest
0 голосов
/ 31 января 2020

У меня есть вопрос, который, вероятно, очень просто решить, но я просто не смог найти ответ. Я хочу посчитать количество значений 0, 1 и 2 в столбце массива numpy. В моем массиве есть два столбца, и я хочу посчитать значения 0, 1 и 2 во втором столбце. Я пытался решить эту проблему следующим образом:

   for row in vergleich[:,1]:
       n = vergleich[:,1].count(0)
       o = vergleich[:,1].count(1)
       t = vergleich[:,1].count(2)
       print(n)
       print(o)
       print(t)

Но я получаю сообщение об ошибке: AttributeError: 'numpy .ndarray' объект не имеет атрибута 'count'. Как еще можно решить эту проблему? Заранее спасибо:)

1 Ответ

0 голосов
/ 31 января 2020

Прогон: np.count_nonzero(vergleich[:,1] == 0), то же самое для других интересующих чисел.

Другая, более общая альтернатива:

unique, counts = np.unique(vergleich[:,1], return_counts=True)
result = dict(zip(unique, counts))

Тогда результат будет содержать ключ / значение пары:

  • ключ - значение в вашем столбце,
  • значение - сколько раз это происходило.

Итак, вы можете запросить результат для ключей 0 , 1 и 2 .

Еще один вариант , но на этот раз на основе Pandas:

Выполнение: res = pd.value_counts(vergleich[:,1])

В результате получается Pandas Series с:

  • index - значением в источнике Series (a Numpy 1-D массив также может быть передан),
  • значение - сколько раз это произошло.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...