python中的counter类

调用Counter 类使用的方法为:

from collection import Counter

Counter用于计数,调用它会返回一个key为列表的值,value为该值的具体个数的对象

我们首先创建一个一维数组:

x=np.random.random_integers(1,10,100)

然后结果是如下所示:
python中的counter类_第1张图片
接下来我们使用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)

我们可以看出如下的返回结果:
python中的counter类_第2张图片

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()

显示结果为:
显示结果6

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的输出结果:
python中的counter类_第3张图片
现在我们进行减法运算,使用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进行减法的时候,自身也被运算后的对象覆盖了

你可能感兴趣的:(python)