python 数据 模块 好用_Python最被低估的库,用好了效率提升10倍!
Python有许多很好的库(libraries),实现这些功能只需要几行代码。今天介绍一个库:collections. 这个模块提供容器相关的更高性能的数据类型,它们提供比通用容器 dict, list, set 和tuple更强大的功能。
今天介绍其中三种数据类型,最后你可能会惊讶它们怎么这么好用。
NamedTuple
对于数据分析或机器学习领域,用好namedtuples 会写出可读性强、易于维护的代码。大家回忆这种熟悉的场景,你正在做特征工程,因为你尤其喜爱list, 所以把一堆特征放到一个list 中,然后喂到机器学习模型中。很快,你将会意识到数百个特征位于此list 中,这就是事情变得糟糕的开始。.
某天,你想使用某个特征,这时比较棘手,你不知道它的index!更糟糕的是,当你准备离职要交接工作时,他们看到一个一个的数字型索引,完全对不上哪个和哪个,他们懵逼,你也尴尬。
如果我们使用NamedTuples去处理以上数据,乱为一团的事情将会迅速变得井然有序:
仅仅几行代码,我们将会很容易索引到第0行数据的age属性取值,这在实际中真是太好用。你告别indexes访问你的数据集中的特征值,而是使用更加人性化,可读性强的names索引。
NamedTuples会使得代码易读、更易维护。
Counter
Counter正如名字那样,它的主要功能就是计数。这听起来简单,但是我们在分析数据时,基本都会涉及计数,真的家常便饭。
习惯使用list 的看过来,有一些数值已经放在一个list中:
如果使用Counter,我们可以写出更简化的代码:
仅仅一行代码,我们便输出统计计数结果,并且是一个按照次数统计出来的由大到小排序好的tuples列表,因此我们很快就会看到,购买3次是出现最多的,一共5次。
购买为1次的占多数,属于长尾。
DefaultDict
DefaultDict是一个被初始化的字典,也就是每个键都已经被访问一次:
一般地,当你尝试访问一个不在字典中的值时,将会抛出一个异常。但是defaultdict可以帮助我们初始化,它的参数作为default_factory. 在上面例子中,将生成 int对象,意思是默认值为int 型,并设定初始值为0,所以我们可以很容易地统计每个字符出现的次数。
Simple and clean!
更有用的一个使用场景,我们有很多种商品,在每秒内下单次数的统计数据如下:
上面例子default_dict取值为list, 因此,我们可以立即append一个元素到list中,更简洁。
总结
至此,你已经了解collections库中的三个类型,它们确实太好用,大家可以操练起来!
python 数据 模块 好用_Python最被低估的库,用好了效率提升10倍!相关推荐
- 阿里云图数据库GDB公测,高度连接数据查询效率提升10倍
3月21日,阿里云图数据库GDB正式公测,用于处理高度连接数据查询与存储,支持属性图模型,并且全面兼容TinkerPop Gremlin 查询语言. 图数据库覆盖的应用场景非常广泛,比较典型的有社交网 ...
- python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+
打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...
- python效率提升_Python GUI开发,效率提升10倍的方法!
1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...
- python如何将多张excel表内数据求和_Excel批量操作,把你的工作效率提升10倍以上(1)...
君子之交淡若水,小人之交甘若醴,君子淡以亲,小人甘以绝.--庄子 我们在日常工作中,遇到的最多的点,就是涉及到的内容很多,如果一个个的去查看,效率会非常慢,这时批量操作可以大大提升我们的工作效率,今 ...
- python对工作效率的提升_使用了这个几个Python内置小工具,可以让你的工作效率提升一倍...
使用了这个几个Python内置小工具,可以让你的工作效率提升一倍 我们将会详情4个Python解释器自身提供的小工具. 这些小工具在笔者的日常工作中经常使用到, 减少了各种时间的白费, 然而,却很容易 ...
- 昇兴集团:搭建帆软报表系统,打破数据孤岛,工作效率提升5倍
注:本文为帆软2021数据生产力大赛参赛案例,未经授权禁止转载. 1.企业简介 昇兴集团股份有限公司坐落于具有我国工业摇篮著称的福州马尾区.公司始创于1992年,自成立以来,始终用专业严谨的态度从事食 ...
- 景联文智能标注平台将数据处理效率提升十倍以上!数据精准度最高可达99%
目前主流的机器学习方式是以有监督的深度学习方式为主,这对标注数据有着强较依赖性需求,未经标注处理过的原始数据多以非结构化数据为主,这些数据难以被机器识别和学习.这就需要标注员借助数据标注工具对数据进行 ...
- python导入模块的变量_python 环境变量和import模块导入方法(详解)
1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 for ...
- python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?
python是个啥?它一个强大的编程语言.数据分析是个啥?它一目了然,就是将数据进行分析,看看能得出什么结论.那python的数据分析到底是啥?其实就是通过这个语言将数据分析做出来,更加便捷化,更加速 ...
- python数据科学课后答案_Python数据科学-技术详解与商业实践-第五讲作业
作者:Ben,著有<Python数据科学:技术详解与商业实践>.<用商业案例学R语言数据挖掘>.<胸有成竹-数据分析的SAS EG进阶>作者.2005年进入数据科学 ...
最新文章
- php开发如何测试,用thinkphp开发微信,如何测试?
- Spring(十八):Spring AOP(二):通知(前置、后置、返回、异常、环绕)
- Android Framework常用工具及LOG调试方法
- jframe运行和预览大小不一样_同一款车型,为什么配的轮胎大小还会不一样?【内含福利】...
- NYMEX ACCESS电子交易系统来
- spark使用KryoRegistrator java代码示例
- socket程序退出后端口依然被占用问题的解决
- 树莓派USB摄像头的使用
- LeetCode:在线编程刷题网站
- Coursera 申请助学金流程和材料
- python中关于self的理解
- Eclipse中如何创建文件夹管理多个项目
- Python BeautifuSoup 库 mooc 中国大学学习
- 微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
- python项目 from models import * 报错
- C语言答案解析,C语言题库带详细讲解答案解析.doc
- 安全扫描工具-appscan
- vue3.0 + tsx 构建el-button
- 微信公众平台开发调试
- Qt为exe添加ico图片
热门文章
- 本人博客已经转到简书,不再更新51cto,谢谢大家。
- iOS开发中的HTML解析
- 创建与管理Oracle的分区表和本地索引
- 纯CSS实现的蓝色竖向导航代码
- 28.类型提示的实现
- 68. 使用Apache的rewrite技术
- 2. wordpress 友情链接的备份和导入
- learning docker steps(3) ----- docker services 初次体验
- Spring源码窥探之:@Value
- GoldenGate 12.3 MA架构介绍系列(4)–Restful API介绍