社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何轻松搞定数据科学面试:Python&R语言篇

CDA数据分析师 • 7 年前 • 1036 次点击  

作者: Carson Forter

编译: Mika
本文为 CDA 数据分析师原创作品,转载需授权


对于数据科学家来说,工作的一大部分都需要在交互式编程环境中对数据进行处理、分析和可视化。

在过去几年,R语言和Python成了进行数据科学中最炙手可热的两种语言。这两种语言各有优缺点,掌握这两种语言大有益处,但是针对面试者而言,最好的方式是学习其中一种并熟练掌握。

在本文中,我对这两种语言分别进行介绍,希望能帮助你更好地应对数据科学面试。

1. 选择一种语言

正如上文中所提到的,我并不建议你两种语言都掌握。在我所经历的面试中,无论是作为面试者还是面试官,我发现这些面试都允许面试者用任何一种语言解决问题。所以选取其中一种进行学习即可。

那么,应该选Python还是R语言呢?

Python

Python是一种多用途且功能齐全的编程语言。旨在实现C语言、Java等编程语言同样的的功能。与C语言不同,Python使用起来更方便,具有自动内存管理和动态类型等功能。

在我看来,用Python进行数据科学优势在于:它能够像生产系统的后端语言一样。也就是说,作为数据科学家,你的任何建模都可以通过在线网站或软件产品等形式轻松实现。如果你主要的兴趣是写代码或原型化代码,我推荐选择Python。

R

另一方面,R语言更像是分析语言。R支持所有标准的计算机科学数据结构和技术,例如数组和for循环,而且R语言非常擅长处理矩形数据集,就像在电子表格程序中看到的那样。但与电子表格不同的是,你仍可以利用迭代和抽象等计算机科学概念,这使得R语言比Excel更强大。

此外,R是学术界定量研究人员使用的语言。这也就是说,通常最先进的统计技术会最先使用在R包中,并且远早于其他语言,包括Python。因此,如果你的主要工作涉及到离线分析和数据可视化,并且你想接触到前沿的统计学包,那么R是不错的选择。

总而言之,选择任何当中一种语言都不会出错。这两种语言都很强大,使用任何一种都能实现你想完成的数据科学任务。

2. 选择操作环境

当你选择了语言之后,下一步需要熟悉最适合这种语言的互动环境。这样你之后在编写、保存代码,数据可视化以及管理包时都会更轻松。

Python

Python方面是Jupyter,并使用相关notebook进行设置。这与RStudio非常不同,但同样很有用。Jupyter提供了基于浏览器的notebook,而不是本地IDE,在当中你能够将代码分成可执行的块,因此你可以分段运行代码并进行分析。输出显示在生成代码的下方,因此你能很清楚哪个输出来自哪个分析。此外,由于它是基于浏览器的,Jupyter notebook也易于与他人共享。

R

R方面是RStudio。与使用命令行或其他IDE相比,使用RStudio进行数据分析要方便得多。使用RStudio能够管理包,访问文件,显示可视化,并为你提供可自定义的文本编辑器和控制台。整个环境为四格窗口形式,操作起来非常方便。

3. 编程基础知识

无论选择哪种语言,你都需要了解编程基础知识,比如数据类型、结构、迭代和抽象。但你在面试中不会直接被问到这些问题,因为这通常是软件工程面试中所涉及的。但是你肯定需要熟悉这些概念,从而完成数据科学面试中的白板问题,以及可带回家完成的编程挑战。

数据类型

数据类型是描述存储信息类型的一种方式。Python的数据类型有:数字、整数、长整数或浮点数;布尔值、二进制;还可以是字符串,即各种字符的组合。在R语言中,以上所有的类型还要加上:由不同的字符串表示的有序变量。

关于不同数据类型如何存储和编码这方面知识很深奥,但在面试中无需担心这方面问题。要注意的是,任何给定的数据单元都属于这些类型之一,并且数据类型将决定你能对数据执行的具体操作。例如,你可以将两个数字变量相乘,但你将无法对两个字符串执行此操作。

数据结构

数据结构是数据的数字或字符串的组合方式。Python有列表(list)和元组,两者都是有序的数据集合,其中列表在其他语言中称为数组。还有集合(set),这是无重复的无序变量集合。此外,Python还有字典(dictionary),表示键值对的有序集合。R语言中有向量(vector),这类似Python的列表,列表,矩阵和数据框。

迭代

迭代是计算机科学中的一个重要概念,它与数据结构密切相关,实质上它是对数据结构中每个项目执行操作的一种方法。这里的两大类是向量化运算和循环。向量化函数是将单个函数应用于数据结构的每个元素,并返回一个元素。

例如,你可以用五个不同数字的列表或向量,然后得到每个数字平方根的新向量。另一方面,循环能让你写执行在给定结构中的代码块。这通常比较慢,但更灵活,因为你可以执行任意代码,并得出任何输出。

循环在R和Python中以相同的形式存在。然而,向量化函数在两种语言中的形式多样且差别大。在R中,有apply的向量化函数族。在Python中有列表解析和Numpy包中的vectorize等选项。这看起来可能很繁琐,但一旦掌握这个概念你就会发现,这些只是相同基本概念的不同应用方式:即选用某种数据结构并对每个元素进行操作。

抽象

抽象是一种编写代码块的方法,可以通过提供给不同的输入重新使用。例如,你可以写一个函数,接受单个数字输入并将其相乘以获得平方值。然后你可以将任意数字传递给函数以获得平方输出,这比在需要时手动进行平方更简洁。Python和R都允许用户定义函数,语法略有不同。

4. 数据操作

数据处理是面试问题中的一类。例如SQL,面试官会给你提供样本数据集,并要求你输出特定结果。

对于这种类型的面试来说,重要的是你熟悉用R或Python包进行数据操作。

Python

Python方面你需要掌握Pandas,这提供了一个完整的框架来运行数据框,包含行和列的矩形数据集。Pandas具有你需要用到的所有操作符,包括过滤、聚合、连接等方法。

R

虽然R本身支持矩阵和数据框形式的矩形数据集,但你仍然可以通过学习dplyr或data.table来让操作更简便。这些包都提供了很好的操作界面:dplyr更直观和可读,而data.table更快,语法更简洁。

5. 统计

统计可能会在白板面试中遇到。这实际上是最简单的部分,因为复杂的统计函数在这些语言中通常被抽象为易于使用的函数。

R中包含许多基本的统计函数。你要花费数小时写的代码,这可能用简单线性回归就可以执行:

model

在Python中,你至少需要Numpy和Scipy软件包才能确保涵盖了基本的统计功能,但跟R语言一样,一旦安装完毕你就可以应用了。

6. 可视化

除了白板面试,许多数据科学面试还有可带回家完成的编程挑战,这通常会给出样本数据集,要求你进行分析并得出结论。通常你需要发回代码,一些解释性文本和可视化。下面看到可视化问题。

对于R和Python,进行可视化实际上只有一种选项:在Python中用matplotlib,在R中用ggplot2。这两个库都有灵活的接口,用于创建漂亮的数据可视化。

对于带回家完成的编程挑战的小建议:给图表起标题,注意对轴进行标注,如果需要可加上误差条,颜色上注意一致性。例如,如果你在图表中将iOS数据点设置为红色,Android为蓝色,那么在所有后续图表中要保持一致。同时图表选择要简单,通常只需条形图,折线图和散点图即可。

7. 结语

通常当你深入了解编程概念时会感到不知所措,但你一旦掌握了编程语言的基础知识,那么接下来就可以使用相关工具进行数据操作、统计和可视化。专注于这三个方面,那么你就能轻松搞定数据科学面试。

原文链接:
https://towardsdatascience.com/how-to-ace-data-science-interviews-r-python-3a49982000de

CDA 课程咨询丨赵老师

联系电话:13381275813
扫描二维码




更多精彩文章

细数数据科学团队中的十大关键角色

做数据分析,Python和R究竟哪个更强?

数据科学家:工作一年后我的几点感悟

机器学习太难?一文带你掌握机器学习的必备基础知识

9 大实际用例,让你重新认识区块链

求职丨我是如何成为了谷歌的软件工程师

Python能用来做什么?以下是Python的三大主要用途



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/AajSBiNAMY
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/24184