专栏首页小数志数据岗面试:常用哪些Python第三方库?

数据岗面试:常用哪些Python第三方库?

导读

当下,数据从业者大多需要掌握Python语言,更准确的说要学会使用Python提供的一些主流第三方库。考虑眼下正值金三银四的找工作最佳时机,现将个人曾经历过的一道面试真题做以分享,具有一定的代表性。

面试题:日常工作中常用的Python第三方库有哪些?

问题解析:这在很多数据岗位面试中很可能会遇到的一道题,笔者在去年的面试中就曾遇到过。表面来看,回答本题并不难,甚至常常如实回答就能说出许多Python中数据相关的第三方库,但实际上面试官可能更想透过求职者的回答了解其对数据处理各流程的理解和掌握情况,良好的回答不仅能原原本本的体现求职者的技术深度,更能表现出良好的逻辑思维以及对数据处理流程的理解

参考答案:按照数据处理的一般流程,各阶段常用的Python第三方库如下:

1)数据采集。Python做数据采集的方式有很多,比如Python爬虫常用于从Web页面获取一些结构化的数据。而在Python爬虫过程中,常用的第三方数据库如下

  • urllib:Python内置的网络请求库,包含了请求网页的常用方法,相较于其替代品requests而言,API接口更为基础多样;
  • requests,基于urllib开发,slogen就是“让HTTP服务人类”,求功能也恰如其宣传口号一般,使用起来相较原生urllib更为简洁易用,也是众多Python爬虫爱好者广泛使用的库;
  • beautifulsoup:爬虫解析库之一,处理requests请求获得的网页源码文件,从中提取目标字段。名字直译为美丽汤,用其解析网页源码就像从汤中捞取干货一般,用起来还是比较简单易懂的;
  • lxml:从名字可见其应该与xml语言有关,实际也正是如此,也是爬虫解析库之一,由于通过xml语言标识符来查找定位相应字段,所以解析效率比beautifulsoup更为高效,但使用难度也略有提升,需要掌握一定的xml语法;
  • re:Python中的正则表达式库,对于requests获取的网页源码而言,实际就是字符串,所以也可用正则表达式库来解析提取,效率不俗;
  • pyquery:实际上是干了网页获取+网页解析两阶段的事,当然网页获取实际上也是调用的urllib或requests。

2)数据读写。数据读写主要是涉及数据库及文件交互的部分库。常用的数据库也无非就是那么几种,包括:

  • pymysql:python处理MySQL数据库的驱动引擎;
  • cx-oracle:python处理Oracle数据库的驱动引擎;
  • psycopg2:python处理PostgreSQL数据库的驱动引擎;
  • sqlite3:python处理SQLite数据库的驱动引擎;
  • sqlalchemy:python建立多种数据库的连接,底层实际上仍然是调用各数据库驱动,相当于集成化的驱动引擎;
  • pymongodb:NoSQL数据库MongoDB的Python驱动引擎;
  • xlrd和xlwt:分别用于excel的read和write;
  • csv:处理csv数据库的python包。

3)数据分析与处理。从这里开始进入到Python数据处理的主要环节,也是真正考察python数据分析技能的重点。常用的数据处理库包括:

  • Numpy:python数据分析三剑客之一,也是另外两个包的基础,核心数据结构是ndarray,即n维数组,由于底层是用C语言实现,所以具有非常高的执行效率,并内置了大量的数组运算,与matplotlib的组合号称是替代Matlab的核心产品;
  • Pandas:在数据分析界曾流传这样一句话:分析不识潘大师(PANDAS),纵是老手也枉然!可见其在Python数据分析行业的江湖地位,且实际情况也正是如此。Pandas继承了Numpy,从网页爬虫到数据读写,从类SQL操作到数据预处理,从聚合统计到数据透视表,从时序数据到字符串的正则表达式,直至数据可视化输出图表,pandas都提供了一站式解决方案,堪称是数据分析界的瑞士军刀。其向量化操作也保证了执行效率,对于千万级以下数据量处理起来毫无压力;
  • PySpark:Pandas速度虽快,但终究是单点执行,当数据量超过千万时考虑分布式处理往往是更为明智之选,而分布式处理框架当首选Spark,而Pyspark则是其Python语言实现版本,尤其是pyspark.sql组件,提供了与Pandas极为类似的处理API,使用起来也非常方便;
  • Scipy:科学计算包,提供了numpy之外更多的科学计算功能,例如各类统计分布等;
  • geopandas:基于Pandas实现的地理空间数据处理,相较于Pandas的DataFrame数据结构,仅增加了一列核心的geometry,用于表达地理空间信息,对于含有经纬度等地理空间数据,处理起来极为高效和丝滑。

4)数据可视化。数据分析和处理的重要环节是数据可视化,往往也是决定自己工作质量好坏的关键环节。可用于输出可视化图表的Python库有很多,例如基于numpy的matplotlib,基于matplotlib的seaborn,基于Echarts的pyecharts等等,当然还有很多其他可选的库,但个人最常使用的还是这三个。

  • matplotlib:是Python中绘图的基础库,内部实现非常强大,常用的是matplotlib.pyplot,除了pyplot外还有pylab,不仅提供了可视化功能,还直接import进了numpy的核心功能。matplotlib绘图的API更为底层,意味着完成一幅图表的输出,需设置很多参数,定制化更强,但同时也较为繁琐。所以是很多高级可视化库的底层依赖;
  • seaborn:是基于matplotlib的一个高级实现,提供了更为简洁的API和更为集成化的显示效果,尤其适用于pandas.dataframe数据结构;
  • pyecharts:Python与百度Echarts组间的结合体,优点是支持动态图表绘制,可交互,绘制的图形也相对更为美观。

5)数据挖掘。在简单的数据分析之后,往往要进入到统计学习和数据挖掘阶段,或者用更专业的术语讲,叫机器学习。也正是得益于机器学习的盛行,Python语言才有了不断发展壮大的今天。用Python做机器学习,主要是以下几个常用的库:

  • scikit-learn:经典机器学习算法的核心库,提供了常用的分类、回归、聚类、降维以及关联分析等经典算法,且内置了一些经典数据集、常用特征工程、评分准则等实现,更重要的是scikit-learn提供了非常详尽和到位的配套文档和注释,API调用也堪称简洁优雅;
  • xgboost:算是对scikit-learn中集成学习算法的一个补充,主要是实现了近年来火爆的xgboost算法实现;
  • lightgbm:与xgboost类似,也是对scikit-learn中集成算法的一个补充,实现了另一个轻量级的继承算法lightgbm;
  • pytorch和TensorFlow,二者均为深度学习库,功能定位也较为相似,前者源于Facebook,后者源于谷歌;前者在学术界使用广泛,后者在工业界更为流行,二者本是瑜亮之争不分伯仲,依据个人喜好择其一即可,个人目前在学的是pytorch。

以上就是依据数据分析和处理的各个环节中常用的python第三方库,面试时可以围绕上述阶段划分思路予以拓展分析回答,在实际工作中也足以支持大部分内容。

本文分享自微信公众号 - 小数志(Datazhi),作者:luanhz

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-03-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 不懂Python学习如何下手?看完本文您能知道60%

    本文由马哥教育Python自动化实战班导师wayne撰写,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 你觉得Python真的好吗?或...

    小小科
  • 王老板Python面试(8):​Python爬虫学到什么样就可以找工作了?

    前段时间快要毕业,而我又不想找自己的老本行Java开发,所以面了很多Python爬虫岗位。因为我在南京上学,所以我一开始只是在南京投了简历,我一共面试了十几家企...

    Python之道
  • 月薪2万的爬虫工程师,Python需要学到什么程度?

    非计算机专业,正在自学python,很多教程里提到的网站的爬虫都会写了。比如拉勾网,豆瓣,实习僧,京东,淘宝,某妹子图等等……但是因为不是计算机专业的,也没学所...

    一墨编程学习
  • 零基础想转行Python?新手应该注重学习哪方面的技术?

    做网站后台:有大量的成熟的框架,如django,flask,bottle,tornado

    python学习教程
  • Python程序员跳槽薪资报告:人生苦短,你们还好吗?

    导读:「人生苦短,我用Python」,这话曾是不少选择投入Python麾下的「码农」们的一句调侃和自我标榜。

    华章科技
  • Python到底学什么?新手应该注重哪方面技术?

    做网站后台:有大量的成熟的框架,如django,flask,bottle,tornado

    python学习教程
  • Python学习路线

    Python是一门应用极其广泛的编程语言。目前在Web开发领域、爬虫领域、数据分析领域、人工智能领域、机器人开发领域都有非常广泛的应用。而且Python语法相对...

    python学习教程
  • 灵魂画手一图解读:成为数据分析师的必备能力项

    上周末晚上,我的学妹突然约我出来喝咖啡,我觉得这件事情不简单,果然一到她就递给我手机,开口就问:

    华章科技
  • 运维工程师养成实录:从确立目标到收获offer

    作为一名渣硕,找工作陆陆续续从今年的三月份开始断断续续的刷一些题,看基础到八月份的猛攻阶段,到此,算是得到了一个不错的收获,也拿到了几个offer,算是对自己的...

    牛客网
  • 利用Python爬虫某招聘网站岗位信息

    Requests 的介绍是这样的: 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用

    可以叫我才哥
  • 学Python爬虫好找工作吗?要学到什么程度?

    随着懂爬虫、学习爬虫的人越来越多,Python爬虫的岗位需求也越来越大。一方面,互联网可以获取的数据越来越多。另一方面,像Python这样的编程语言提供越来越多...

    python学习教程
  • Python到底学什么?新手应该注重哪些方面的技术?

    做网站后台:有大量的成熟的框架,如django,flask,bottle,tornado

    python学习教程
  • 零基础入门数据挖掘,看完这份详细的学习指南就够了!

    AI时代,在招聘网站公布的招聘数据中,“算法”、“机器学习”、“数据挖掘”相关岗位平均招聘薪资高于其余同等学历、工龄要求的技术岗位30%以上甚至更高,吸引了一大...

    大数据分析不是事儿
  • python应用场景有哪些?岗位工资如何?

    其实,从那么多的大企业的实际应用就可以看出python已经在各个领域被广泛应用了。

    刘金玉编程
  • Python面试经验总结,面试一时爽,一直面试一直爽!

    我做了两份简历,用两个手机账号,两个简历名字,分别在各个招聘网站投了双份简历,一个是数据分析的简历、一个是web全栈开发的简历,我真正接触python快2年,不...

    一墨编程学习
  • 番外篇:面试总结(1)

    谢伟
  • Python后端面试(持续更新)

    dreamkong
  • 从0到1去转型到大数据圈子

    前言:对于一个陌生的领域,最重要的还是方向,有人引导那会更好,把有限的时间花在必要的事上,做一件正确的事。 说明:这篇文章是新年后的第一篇文章,算是微信互动问答...

    用户1667431
  • 如何用三个月学会python?

    如果你有Python基础,你想更深入了解学习Python知识体系,你可以看一下我们花费了一个多月整理了上百小时的几百个知识点体系内容:

    马哥linux运维

扫码关注云+社区

领取腾讯云代金券