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倍!相关推荐

  1. 阿里云图数据库GDB公测,高度连接数据查询效率提升10倍

    3月21日,阿里云图数据库GDB正式公测,用于处理高度连接数据查询与存储,支持属性图模型,并且全面兼容TinkerPop Gremlin 查询语言. 图数据库覆盖的应用场景非常广泛,比较典型的有社交网 ...

  2. python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+

    打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...

  3. python效率提升_Python GUI开发,效率提升10倍的方法!

    1 框架简介 这个框架的名字叫 PySimpleGUI,它完全基于Python语言,能非常方便地开发GUI界面,代码量相比现有框架减少50%到90%.并且,它提供了极为友好的Python风格的接口,大 ...

  4. python如何将多张excel表内数据求和_Excel批量操作,把你的工作效率提升10倍以上(1)...

    ​君子之交淡若水,小人之交甘若醴,君子淡以亲,小人甘以绝.--庄子 我们在日常工作中,遇到的最多的点,就是涉及到的内容很多,如果一个个的去查看,效率会非常慢,这时批量操作可以大大提升我们的工作效率,今 ...

  5. python对工作效率的提升_使用了这个几个Python内置小工具,可以让你的工作效率提升一倍...

    使用了这个几个Python内置小工具,可以让你的工作效率提升一倍 我们将会详情4个Python解释器自身提供的小工具. 这些小工具在笔者的日常工作中经常使用到, 减少了各种时间的白费, 然而,却很容易 ...

  6. 昇兴集团:搭建帆软报表系统,打破数据孤岛,工作效率提升5倍

    注:本文为帆软2021数据生产力大赛参赛案例,未经授权禁止转载. 1.企业简介 昇兴集团股份有限公司坐落于具有我国工业摇篮著称的福州马尾区.公司始创于1992年,自成立以来,始终用专业严谨的态度从事食 ...

  7. 景联文智能标注平台将数据处理效率提升十倍以上!数据精准度最高可达99%

    目前主流的机器学习方式是以有监督的深度学习方式为主,这对标注数据有着强较依赖性需求,未经标注处理过的原始数据多以非结构化数据为主,这些数据难以被机器识别和学习.这就需要标注员借助数据标注工具对数据进行 ...

  8. python导入模块的变量_python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 for ...

  9. python数据可视化的特点_python的数据分析到底是啥?python数据可视化怎么做?

    python是个啥?它一个强大的编程语言.数据分析是个啥?它一目了然,就是将数据进行分析,看看能得出什么结论.那python的数据分析到底是啥?其实就是通过这个语言将数据分析做出来,更加便捷化,更加速 ...

  10. python数据科学课后答案_Python数据科学-技术详解与商业实践-第五讲作业

    作者:Ben,著有<Python数据科学:技术详解与商业实践>.<用商业案例学R语言数据挖掘>.<胸有成竹-数据分析的SAS EG进阶>作者.2005年进入数据科学 ...

最新文章

  1. php开发如何测试,用thinkphp开发微信,如何测试?
  2. Spring(十八):Spring AOP(二):通知(前置、后置、返回、异常、环绕)
  3. Android Framework常用工具及LOG调试方法
  4. jframe运行和预览大小不一样_同一款车型,为什么配的轮胎大小还会不一样?【内含福利】...
  5. NYMEX ACCESS电子交易系统来
  6. spark使用KryoRegistrator java代码示例
  7. socket程序退出后端口依然被占用问题的解决
  8. 树莓派USB摄像头的使用
  9. LeetCode:在线编程刷题网站
  10. Coursera 申请助学金流程和材料
  11. python中关于self的理解
  12. Eclipse中如何创建文件夹管理多个项目
  13. Python BeautifuSoup 库 mooc 中国大学学习
  14. 微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
  15. python项目 from models import * 报错
  16. C语言答案解析,C语言题库带详细讲解答案解析.doc
  17. 安全扫描工具-appscan
  18. vue3.0 + tsx 构建el-button
  19. 微信公众平台开发调试
  20. Qt为exe添加ico图片

热门文章

  1. 本人博客已经转到简书,不再更新51cto,谢谢大家。
  2. iOS开发中的HTML解析
  3. 创建与管理Oracle的分区表和本地索引
  4. 纯CSS实现的蓝色竖向导航代码
  5. 28.类型提示的实现
  6. 68. 使用Apache的rewrite技术
  7. 2. wordpress 友情链接的备份和导入
  8. learning docker steps(3) ----- docker services 初次体验
  9. Spring源码窥探之:@Value
  10. GoldenGate 12.3 MA架构介绍系列(4)–Restful API介绍