请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

这些好用却鲜为人知的Python库,你知道多少?

[复制链接]
查看: 48|回复: 0

8157

主题

8157

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
24481
发表于 2019-12-2 16:55 | 显示全部楼层 |阅读模式
前言

本文的翰墨及图片根源于收集,仅供进修、交换操纵,不具有任何贸易用处,版权归原作者全数,若有题目请实时联系我们以作处置赏罚。
作者: 读芯术
PS:若有需要Python进修材料的小同伴可以加点击下方链接自行获得
http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef
保存中,经常有一些人,明显很有本事,却不被身旁人看好。
是金子总能发光,这句话放在现实保存中,实在并不完全适用,生齿众多,不乏有才之人,想要乐成就需要一个一鸣惊人的机遇。
Python也是。
Python中有很多现成的性能不错的库。collections就是其中一个。
collections模块供给了“高性能的容器数据典范”,是通用容器字典、列表、聚集和元组的美满替换。
但却经常被人轻忽大要看轻。
本日,小芯就将积极当一个“好伯乐”,简便大白地为大家先容那些不被看好的Python库,挖掘出它们的无穷潜能。
在本文中将会向读者细致先容其中的三种数据典范,信赖在阅读完本文后,大家必定会迷惑自己之前是怎样在没有这些库的情况下完成编程。
Counter

Counter的名字很贴切——它的重要功用就是计数。这听起来很简单,但究竟证实,数据科学家经常不能不举行计数,所以它很是有用。
有几种方式可以实现初始化,但笔者凡是会设备一个以下图的值列表
  1. 1 from  collections import Counter2 ages = [22, 22, 25, 25, 30, 24, 26, 24, 35, 45, 52, 22, 22, 22, 25, 16, 11, 15, 40, 30]3 value_counts  = Counter(ages)4 print(value_counts.most_common())
复制代码

counter.py hosted with  by GitHub
假如读者要运转上述代码(倡议操纵这个高服从工具),就会获得以下输出:
  1. [(22, 5), (25, 3), (24, 2), (30,2), (35, 1), (40, 1), (11, 1), (45, 1), (15, 1), (16, 1), (52, 1), (26, 1)]
复制代码

按最多见的次第排列的元组列表,其中元组中首先包含值,然后是计数。所以可以灵敏地从中看到22岁是最多见的年龄,频次为5次,还丰年龄只出现了一次。完成了!
DefaultDict

这是笔者的最爱之一。DefaultDict是在初度碰到每个键时操纵默许值初始化的多功用字典。接下来是一个实例
  1. 1 From collections  import defaultdict2 my_default_dict  = defaultdict(int)3 for letter in'the red  fox ran as fast as it could':4     my_default_dict[letter] +=15 print(my_default_dict)
复制代码
  1. defaultdict.py hosted with  by GitHub
复制代码
返回
  1. defaultdict(,{'a': 4, ' ': 8, 'c': 1, 'e': 2, 'd': 2, 'f': 2, 'i': 1, 'h': 1, 'l': 1, 'o':2, 'n': 1, 's': 3, 'r': 2, 'u': 1, 't': 3, 'x': 1})
复制代码

凡是,当尝试拜候一个不在字典中的值时,就会出现表现毛病的界面。还有其他方式可以处置赏罚这个题目,可是它会增加一些过剩的代码当用户盼望操纵默许值的时候。在上面的例子中,用int初始化了defauldict,这意味着在第一次拜候时,将它假定为0,所以可以很轻易地对全数字符举行计数,简便大白。另一个常见的初始化是list,它答利用户在第一次拜候时立即起头附加值。
NamedTuple

NamedTuple对于数据科学家的意义相当垂危。接下来这个场景听起来大要很是熟悉, 由于爱好list,所以正在举行特征工程,只需将这些特征增加到相对应的类中,然后将其输入到呆板进修模子中。当获得数百个特征时,情况就会变得很是混乱。对于具体用到的特征,或援用了列表中的哪个索引模棱两可。更糟糕的是,当其他人检察代码时,他们面临这一大堆的特征底子无从脱手。
输入NamedTuples来打点这个逆境。
仅仅只需要多写几行代码,混乱的列表立即就会规复次序。以下图所示
  1. 1 from  collections import namedtuple2 Features  = namedtuple('Features', ['age', 'gender', 'name'])3 row =  Features(age=22, gender='male', name='Alex')4 print(row.age)
复制代码

namedtuple.py hosted with  by GitHub
假如要运转这段代码,它就会印出“22”的字样,即特征用户存储在行中的年龄。简直不成思议!现在,大可不必操纵索引来拜候,取而代之的是一些易于大白的称号,这大猛进步了代码的可保护性和整洁度。
这些功用都有助于编写加倍简便的代码。
看到这里,读者应当对collections库和它的一些很棒的功用有了一些了解,赶紧操纵起来吧!
你会惊奇地发现它们很多潜伏的用处,以及它给你的代码带来的质的改变。
尽情享用它们带来的便当!
动动你的小手手,一路来试试吧~

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表