2016-03-17 2 views
-1

Я пытаюсь подсчитать уникальные значения в массиве, используя эти заявления:TypeError: уникальный() получил неожиданный аргумент ключевого слова «» return_counts

unique, counts = np.unique(temp, return_counts= True) 
print np.asarray((unique, counts)).T 

Но я получаю ниже ошибки,

TypeError: unique() got an unexpected keyword argument 'return_counts' 

Я даже попробовал заменить return_counts на True в печати, но результат неправильный. Вот что результат выглядит,

temp:[[100, 100, 0], [100, 100, 0], [0, 0, 0]] 
count matrix: 
[[ 0 2] 
[100 0]] 

Я хочу, чтобы подсчитать количество уникальных значений в массиве и Ожидая результат, как показано ниже,

result: [[100,4],[0,5]] 

Есть ли лучший способ подсчета уникальных значений?

+0

не могли бы вы взглянуть на это. @NumesSanguis –

+3

Какую версию numpy вы используете? return_counts был добавлен в '1.9.0' –

+0

« return_counts »был введен в numpy 1.9 (см. [' np.unique'] (http://docs.scipy.org/doc/numpy-1.10.1/reference/generated /numpy.unique.html)). Поэтому я подозреваю, что вы используете более раннюю версию numpy. – MSeifert

ответ

0

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

if temp[k][l] in dict_temp: 
        cnt = dict_temp.get(temp[k][l]) 
        cnt =cnt+1 
        dict_temp.update({temp[k][l]:cnt}) 
else: 
        count = 0 
        count =count + 1 
        dict_temp.update({temp[k][l]:count}) 
Смежные вопросы