Numpy数组元素等价检查

时间:2015-01-28 00:33:40

标签: python arrays numpy

好吧所以我对python和numpy相当新,我想做的是获取一个随机生成的整数数组并检查每个数字是否有多次出现,例如b=numpy.array([3,2,33,6,6])它会然后告诉我6发生两次。或者如果a=numpy.array([22,21,888])每个整数不同。

1 个答案:

答案 0 :(得分: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

希望这有帮助。