как посчитать указанные c значения, даже если результатов нет? - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь создать массив из 10 элементов, который заполнен подсчетом всех 10 возможных вариантов.

number_count = np.array([0,1,2,3,4,5,6,0,0,0])

unique, count = np.unique(number_count, return_counts=True)
dict(zip(unique,count))
count_array = count /10

(массив number_count был изменен, поскольку значения поступают из txt-файла, а не жестко закодированы).

То, как я подсчитал элементы, которые я имею возвращает все 7 уникальных вхождений значений, но я пытаюсь включить опции для (0,1,2,3,4,5,6,7,8,9), даже если есть 0 вхождений указанного значения c ценность.

Мне интересно, есть ли способ использовать numpy.unique для подсчета указанных c уникальных значений вместо просто уникальных вхождений, или мне лучше использовать какую-то другую форму подсчета?

1 Ответ

2 голосов
/ 12 апреля 2020

Вы можете создать массив нулей желаемой длины и просто добавить свои счетчики, проиндексированные возвращаемым значением np.unique

import numpy as np

number_count = np.array([0,1,2,3,4,5,9,0,0,0,1])

counts = np.zeros(10, dtype=int)

unique, count = np.unique(number_count, return_counts=True)
counts[unique] += count

counts
# array([4, 2, 1, 1, 1, 1, 0, 0, 0, 1])

Это позволяет избежать временного словаря. Если вы действительно хотите диктовать, вы можете создать его из списка с помощью:

dict(enumerate(counts))
# {0: 4, 1: 2, 2: 1, 3: 1, 4: 1, 5: 1, 6: 0, 7: 0, 8: 0, 9: 1}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...