日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python在统计专业的应用_Python:使用Counter进行计数统计

發布時間:2024/7/23 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python在统计专业的应用_Python:使用Counter进行计数统计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計數統計就是統計某一項出現的次數。實際應用中很多需求需要用到這個模型。比如測試樣本中某一指出現的次數、日志分析中某一消息出現的頻率等等‘這種類似的需求有很多實現方法。下面就列舉幾條。

(1)使用dict

看下面代碼#coding=utf-8

data = [‘a‘,‘2‘,2,4,5,‘2‘,‘b‘,4,7,‘a‘,5,‘d‘,‘a‘,‘z‘]

count_frq = dict()

for one in data:

if one in count_frq:

count_frq[one] += 1

else:

count_frq[one] = 1

print count_frq

輸出結果如下:

{‘a‘: 3, 2: 1, ‘b‘: 1, 4: 2, 5: 2, 7: 1, ‘2‘: 2, ‘z‘: 1, ‘d‘: 1}

這種方法最簡單,也是最容易想到的,鄙人這寫這篇博文之前用的最多,不過以后應該不會用來,我們應該使代碼更加Pythonic

(2)使用set和list

代碼如下:#coding=utf-8

data = [‘a‘,‘2‘,2,4,5,‘2‘,‘b‘,4,7,‘a‘,5,‘d‘,‘a‘,‘z‘]

data_set = set(data)

count_list = []

for one in data_set:

count_list.append((one,data.count(one)))

print count_list

輸出結果如下:

[(‘a‘, 3), (2, 1), (‘b‘, 1), (4, 2), (5, 2), (7, 1), (‘2‘, 2), (‘z‘, 1), (‘d‘, 1)]

這里面利用了list的通用方法和集合(set)的特性,集合是一個無序不重復的元素集,而工廠函數set()可以將列表轉換為一個無序不重復的元素集合。

以上方法都很簡單,但不夠Pythonic。下面來介紹collections中的Counter類。

(一)Counter類

Counter類的目的是用來跟蹤值出現的次數。它是一個無序的容器類型,以字典的鍵值對形式存儲,其中元素作為key,其計數作為value。計數值可以是任意的Interger(包括0和負數)支持集合操作+、-、&、|,其中&、|操作分別返回兩個Counter對象各元素的最大值和最小值。

(1)Counter的初始化

跟平時自定義類的初始化方法差不多,如下:

c = Counter("hello world")#可迭代對象創建

c = Counter(h=1,l=3,o=2)#關鍵字創建

c = Counter({‘h‘:1,‘l‘:3,‘o‘:2})#字典創建

c = Counter()#空Counter類

(2)Counter類常見方法

elements():返回一個迭代器。元素被重復了多少次,在該迭代器中就包含多少個該元素。所有元素按照字母序排序,個數小于1的元素不被包含。

update():用于統計對象元素的更新,原有的Counter計數器對象與新增元素的統計計數值相加而不是直接替換。

subtract():該方法用于計數器對象中元素統計值減少,輸入輸出的統計值書可以為0或者負數的。

most_common([n]):可以查找出前n個出現頻率最高的元素以及它們對于的次數,也就是說頻率搞的排在最前面。

所以上面的例子用Counter類的話,也很簡單,代碼如下:#coding=utf-8

from collections import Counter

data = [‘a‘,‘2‘,2,4,5,‘2‘,‘b‘,4,7,‘a‘,5,‘d‘,‘a‘,‘z‘]

c = Counter(data)

print c

輸出結果如下:

Counter({‘a‘: 3, 4: 2, 5: 2, ‘2‘: 2, 2: 1, ‘b‘: 1, 7: 1, ‘z‘: 1, ‘d‘: 1})

咱們接著看代碼print c.elements()

print list(c.elements())

輸出結果如下:

[‘a‘, ‘a‘, ‘a‘, 2, ‘b‘, 4, 4, 5, 5, 7, ‘2‘, ‘2‘, ‘z‘, ‘d‘]c[‘z‘] -= 1

print c

print c.elements()

print list(c.elements())

輸出結果如下:

Counter({‘a‘: 3, 4: 2, 5: 2, ‘2‘: 2, 2: 1, ‘b‘: 1, 7: 1, ‘d‘: 1, ‘z‘: 0})

[‘a‘, ‘a‘, ‘a‘, 2, ‘b‘, 4, 4, 5, 5, 7, ‘2‘, ‘2‘, ‘d‘]

元素’z‘的統計值變為了0,然后進行elements()運算后,‘z‘就被排除掉了。c.update("aaaa")

print c

輸出結果:

Counter({‘a‘: 7, 4: 2, 5: 2, ‘2‘: 2, 2: 1, ‘b‘: 1, 7: 1, ‘d‘: 1, ‘z‘: 0})

update()在原基礎上增加了計數值c.subtract("aaaaa")

print c

輸出結果如下:

Counter({‘a‘: 2, 4: 2, 5: 2, ‘2‘: 2, 2: 1, ‘b‘: 1, 7: 1, ‘d‘: 1, ‘z‘: 0})

subtract()在原基礎上減少計數值print c.most_common()

輸出結果如下:

[(‘a‘, 2), (4, 2), (5, 2), (‘2‘, 2), (2, 1), (‘b‘, 1), (7, 1), (‘d‘, 1), (‘z‘, 0)]

以上代碼都是連接在一起的。

(3)算術和集合操作#coding=utf-8

from collections import Counter

data = [‘a‘,‘2‘,‘2‘,‘b‘,‘a‘,‘d‘,‘a‘,]

c = Counter(data)

b = Counter(a=1,b=2)

print c

print b

print b+c # c[x] + d[x]

print c-b # subtract(只保留正數計數的元素)

print c&b # 交集: min(c[x], d[x])

print c|b # 并集: max(c[x], d[x])

輸出結果如下:

Counter({‘a‘: 3, ‘2‘: 2, ‘b‘: 1, ‘d‘: 1})

Counter({‘b‘: 2, ‘a‘: 1})

Counter({‘a‘: 4, ‘b‘: 3, ‘2‘: 2, ‘d‘: 1})

Counter({‘a‘: 2, ‘2‘: 2, ‘d‘: 1})

Counter({‘a‘: 1, ‘b‘: 1})

Counter({‘a‘: 3, ‘2‘: 2, ‘b‘: 2, ‘d‘: 1})

(4)其它

Counter類返回值跟字典很類似,所以字典類的方法對Counter對象也適用。如下:#coding=utf-8

from collections import Counter

data = [‘a‘,‘2‘,2,4,5,‘2‘,‘b‘,4,7,‘a‘,5,‘d‘,‘a‘,‘z‘]

c = Counter(data)

print c.keys()

print c.has_key(‘a‘)

print c.get(‘a‘)

print c.items()

print c.values()

print c.viewitems()

print c.viewkeys()

輸出如下:

[‘a‘, 2, ‘b‘, 4, 5, 7, ‘2‘, ‘z‘, ‘d‘]

True

3

[(‘a‘, 3), (2, 1), (‘b‘, 1), (4, 2), (5, 2), (7, 1), (‘2‘, 2), (‘z‘, 1), (‘d‘, 1)]

[3, 1, 1, 2, 2, 1, 2, 1, 1]

dict_items([(‘a‘, 3), (2, 1), (‘b‘, 1), (4, 2), (5, 2), (7, 1), (‘2‘, 2), (‘z‘, 1), (‘d‘, 1)])

dict_keys([‘a‘, 2, ‘b‘, 4, 5, 7, ‘2‘, ‘z‘, ‘d‘])

這只是其中一部分,其它的方法可以參考字典類的方法。

另外,Counter對象還支持工廠函數操作set()、list()、dict().

有時間再補充介紹collections模塊中其它的類

原文地址:http://11026142.blog.51cto.com/11016142/1851791

總結

以上是生活随笔為你收集整理的python在统计专业的应用_Python:使用Counter进行计数统计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕va | 熟妇高潮喷沈阳45熟妇高潮喷 | 欧美一区二区三区视频在线观看 | 蜜桃av一区二区 | 久久久久亚洲精品中文字幕 | 天堂影视在线观看 | 91麻豆产精品久久久久久 | 狂野欧美性猛交xxⅹ李丽珍 | 91大神久久 | 尹人香蕉 | 中文字幕第一页久久 | 一级片视频在线观看 | 日韩性生活视频 | xxx久久久 | 国产亚洲一区二区不卡 | 亚洲痴女 | 日本不卡免费在线 | 三上悠亚 电影 | 天天干天天搞天天射 | 草色噜噜噜av在线观看香蕉 | 日韩亚洲国产精品 | 国产一区二区三区黄 | 午夜欧美日韩 | 欧美日韩激情在线观看 | 日韩精品大片 | 久久精品国产久精国产 | 春色影视 | 国产一区二区三区四区五区 | 亚洲乱码国产乱码精品精98午夜 | 激情视频一区二区三区 | 日韩在线一二三区 | 综合久久综合久久 | 91视频播放器 | 一级黄色影院 | 日本小视频网站 | 中国一级特黄毛片大片 | 日韩毛片一区 | 欧美日一本| 午夜日韩欧美 | 亚洲精品白浆高清久久久久久 | 久久久久国产 | 亚洲精品视频导航 | 伊人狼人久久 | 日韩精品极品视频 | 国产真人毛片 | 色噜噜狠狠狠综合曰曰曰88av | 免费久久久久久 | 人妻av一区二区 | 少妇精品偷拍高潮白浆 | 97视频在线观看免费高清完整版在线观看 | 亚洲三区在线播放 | 欧美片网站免费 | 深夜视频一区二区三区 | 亚洲成人久久久 | 白又丰满大屁股bbbbb | 激情自拍偷拍 | 国产尤物视频在线观看 | 亚洲免费福利 | 丰满少妇一区 | 日日干日日插 | 一区二区三区精彩视频 | 97色伦97色伦国产欧美空 | 毛片基地在线观看 | 在线中文字幕一区 | 香蕉伊人 | 综合色播 | 午夜日韩 | 日韩精品人妻一区二区三区免费 | 久色国产 | av不卡在线| 成人福利免费视频 | 国产精品v欧美精品v日韩 | 好吊色综合 | 欧美精品一区二区不卡 | jizz黄| 可以看的毛片 | 奇米成人影视 | 咪咪av | 国产一级在线视频 | 这里只有精品久久 | 在线视频天堂 | 色交视频 | 国产精品国语 | 五月天综合网 | 69午夜| 国产精品亚洲五月天丁香 | 特黄三级又爽又粗又大 | 午夜九九九 | jjzz国产| 国产日韩亚洲欧美 | 老熟妇午夜毛片一区二区三区 | 亚洲污污视频 | 国产精品丝袜黑色高跟 | 日本第一页 | 毛色毛片 | 免费看的黄网站 | 国产亚洲精品美女久久久 | 日本电影成人 | 91精品视频一区二区三区 |