2015-01-28 2 views
1

Итак, я довольно новичок в python и numpy, я хочу сделать один массив случайных целых чисел и проверить, есть ли несколько вхождений каждого числа, например, если b=numpy.array([3,2,33,6,6]) it затем скажет мне, что 6 происходит дважды. или если a=numpy.array([22,21,888]), что каждое целое число отличается.Проверка эквивалентности элемента массива Numpy

ответ

0

Вы можете использовать counter, чтобы проверить, как может раз в заданное число встречается в виде списка или любого итерацию объекта:

In [2]: from collections import Counter 

In [8]: b=numpy.array([3,2,33,6,6]) 

In [9]: Counter(b) 
Out[9]: c = Counter({6: 2, 33: 1, 2: 1, 3: 1}) 

In [14]: c.most_common(1) 
Out[14]: [(6, 2)] # this tells you what is most common element 
        # if instead of 2 you have 1, you know all elements 
        # are different. 

Точно так же вы можете сделать для своего второго примера:

In [15]: a=numpy.array([22,21,888]) 

In [16]: Counter(a) 
Out[16]: Counter({888: 1, 21: 1, 22: 1}) 

Другой путь является использование set и сравнение результирующей длины набора с длиной вашего массива.

In [20]: len(set(b)) == len(b) 
Out[20]: False 

In [21]: len(set(a)) == len(a) 
Out[21]: True 

Надеюсь, это поможет.

Смежные вопросы