调用Counter 类使用的方法为:
from collection import Counter
Counter用于计数,调用它会返回一个key为列表的值,value为该值的具体个数的对象
我们首先创建一个一维数组:
x=np.random.random_integers(1,10,100)
然后结果是如下所示:
接下来我们使用Counter()进行计数:
counter=Counter(x)
counter
返回的结果为:
在返回的结果中我们可以看到,x中有13个1,6个2,12个人3…….
当然Counter对象还有别的方法:
elements():一般用于循环索引使用,单个调用不会有结果,可以看如下代码:
x=np.random.random_integers(1,10,100)
count=Counter(x)
count.elements()
结果返回的是如下结果,可以看出,没有我们所愿返回它的结果
利用循环进行显示如下代码:
x=np.random.random_integers(1,10,20)
count=Counter(x)
for i in count.elements():
print(i)
most_common(n):用于显示前n个最多的元素,代码如下:
x=np.random.random_integers(1,10,20)
count=Counter(x)
count.most_common(3)
返回结果如下:
当然有时候也可以不写参数n,此时默认为显示所有元素的数量情况,可看如下代码:
x=np.random.random_integers(1,10,20)
count=Counter(x)
count.most_common()
显示结果为:
subtract():可以看成两个元组之间的加减运算,将各个元素对应的个数进行加减,加减后会更新原数组,也就是本身会被覆盖掉,可以看如下代码:
first=np.random.random_integers(1,10,20)
second=np.random.random_integers(1,10,30)
count1=Counter(first)
count2=Counter(second)
这时我们可以看一下count1,count2的输出结果:
现在我们进行减法运算,使用subtract()函数来试一试
代码为:
count2.subtract(count1)
这时count2的结果为:
我们对比一下先前的值:
count1:({1: 3, 2: 1, 3: 1, 4: 1, 5: 1, 6: 5, 7: 2, 8: 2, 9: 1, 10: 3})
count2:({1: 1, 2: 3, 3: 3, 4: 4, 5: 1, 6: 5, 7: 2, 8: 5, 9: 3, 10: 3})
后来的值:
count2:({1: -2, 2: 2, 3: 2, 4: 3, 5: 0, 6: 0, 7: 0, 8: 3, 9: 2, 10: 0})
1所在的为1-3=-2,2所在的为3-1=2,3所在的为3-1=2…..,可以看出count2对count1进行减法的时候,自身也被运算后的对象覆盖了