数据科学:R&Python

数据科学:R&Python在过去几年中,两种语言已经成为这些任务的标准选择:R和Python。每种语言都有自己的长处和短处,最终你可能从这两种语言人中受益,但对于大部分人

欢迎大家来到IT世界,在知识的湖畔探索吧!

数据科学:R&Python数据科学:R&Python

数据科学家日常工作的一大部分涉及在交互式编程环境中操纵,分析和可视化数据。在过去几年中,两种语言已经成为这些任务的标准选择:R和Python。每种语言都有自己的长处和短处,最终你可能从这两种语言人中受益,但对于大部分人来说,最好的是首先选择一个,并且很好地学习。无论您选择哪种方式,我都会介绍您:在本文中,我将详细讲解每种语言的基本知识,以便您可以更深入了解。

选择一种语言

正如我上面提到的那样,我可以给你的最好建议不是通过尝试学习所有东西来展现自我。我参加过的每一次数据科学访谈,作为面试官或面试者,都允许应聘者用两种语言解决问题。所以最终学习是完全没问题的。以下是关于如何做出选择的一般指导原则。

Python是一个多用途,功能全面的编程语言(技术上R也是如此,但我们会在一分钟之内完成)。它被设计成与其他编程语言(如C和Java)相同的功能。与C不同的是,Python有许多现代的便利,比如自动内存管理和动态输入。在我看来,Python在数据科学方面的优势在于它可以作为生产系统的真正后端语言,这意味着您作为数据科学家所做的任何建模都可以在实时网站或软件产品上轻松实现。换句话说,如果你的主要兴趣在于写作或原型制作代码,我会选择Python。

另一方面,R更像是一种分析语言。虽然R支持所有标准的CS数据结构和技术,例如数组和循环,但它在处理矩形数据集时非常出色,就像您在典型的电子表格程序中看到的那样。与电子表格不同的是,您仍然可以利用计算机科学概念,如迭代和抽象(下面会详细介绍这些概念),这使得它的数量级比Excel等更强大。此外,R是学术界定量研究人员的事实上的语言,这意味着最前沿的统计技术通常可以作为R软件包在他们前往任何其他地方(包括Python)之前获得。所以如果你的主要工作流程涉及到离线分析和数据可视化,

两者都非常有用,而且你可以让任何一种语言都可以完成你想要完成的任何数据科学任务。

选择一个环境

一旦你选择了一种语言,请帮助自己并且熟悉该语言的最佳交互式环境。这将使您的生活在组织和保存代码,可视化数据和管理软件包方面无限轻松。

在R你想要去下载免费版本RStudio。与使用命令行或其他IDE相比,对于使用RStudio进行数据分析更容易的方面,我实在说不出足够的优点。它管理软件包,提供帮助文件的访问权限,显示可视化效果,并为您提供一个漂亮的,可自定义的文本编辑器以及控制台。整个环境被组织成四格式格式,因此您可以一次关注所有内容。

对于Python来说,Jupyter可以通过notebooks进行设置。这是与RStudio完全不同的环境,但同样有用。Jupyter不是本地IDE,而是提供基于浏览器的notebooks,它可以让您将代码分成可执行的块,因此您一次只能运行一段代码并进行分析。输出内嵌地显示在产生它的代码的下面,以便清楚哪个输出来自哪个分析。另外,因为它们是基于浏览器的,所以Jupyter notebooks很容易与其他人共享,从而使所有工作更加可重复。

编程基础

无论您选择哪种语言,您都需要了解编程基础 – 数据类型和结构,迭代和抽象。你会直接对这些概念提出疑问,但是您一定需要熟悉这些概念,才能解决您在典型的数据科学访谈中可能遇到的任何白板或回家挑战。

数据类型 只是描述正在存储的信息类型的一种方式。在Python中,选项是一个数字,可以是整数,长整数或浮点数; 一个布尔值,一个二元真或假; 和一个字符串,它是字符的组合。在R中,所有这些相同类型都存在以下因素:一个有序变量,其级别由不同的字符串表示。

就如何存储和编码不同数据类型而言,本主题有很多深入的内容,但通常您不需要知道这些内容以进行访问。请注意,任何给定的数据单元都需要属于这些类型之一,并且类型将决定您可以对数据执行哪些操作。例如,您可以将两个数字变量相乘,但当然,您无法为两个字符串执行此操作。

数据结构是将每个原子数据片段(如数字或字符串)组合成单个对象的方法。Python有列表(通常称为其他语言的数组)和元组,这两者都是有序的数据集合。它也有一个叫做set的东西,它是一个无序的变量集合,没有重复。最后,Python有字典表示键值对的有序集合。R有矢量(类似于Python列表,除了所有元素需要共享一个类型),列表,矩阵和数据框。

迭代是计算机科学中的一个重要概念,与数据结构有着深层次的联系 – 实质上它是对数据结构中的每个项目执行操作的一种方式。这里的两大类是矢量化操作和循环。矢量化函数只是将单个函数应用于数据结构的每个元素并返回一个元素的一种方法。

例如,您可以采用五个不同数字的列表或矢量,并获取每个平方根的新矢量。另一方面,循环让你编写一个代码块,为给定结构中的每个项目执行。这通常比较慢,但是更灵活一点,因为你可以执行任意代码,输出可以是任何东西。

在R和Python中循环都以相同的形式存在。另一方面,矢量化函数在两种语言中都有很多形式,并且差别很大。在R中,有整个apply矢量化函数族,你可以在这里阅读。在Python中有列表vectorize解析和Numpy包中的其他选项。这可能看起来很多,但是一旦你了解了这个概念,你会发现所有这些不同的选项都是应用相同基本概念的各种方式:获取数据结构并对它的每个元素进行操作。

Abstraction(主要是函数形式)是一种编写代码块的方式,可以通过为其提供不同的输入来重用它。例如,您可以编写一个函数,该函数使用单个数字输入并将其乘以自己以获得平方值。然后,您可以将任意数字传递给函数以获得平方输出 – 这样做理论上比每次需要手动对数字进行平方比较简洁。虽然这个例子可能不会节省太多时间或代码,但函数可能变得复杂得多,在这一点上为重复任务编写函数可以使代码更加可读和简洁。Python和R都允许用户定义函数,但语法略有不同。

如果这部分感觉像很多新的信息,我建议从一个基本的R或Python教程开始。DataCamp对于R来说很不错,CodeAcademy对Python 来说是一个不错的选择。

数据操作

数据处理代表了典型面试问题的一大类。与SQL一样,标准访问者将为您提供示例数据集并要求您输出特定结果。

这种采访的重要之处在于,你对R或Python包进行数据操作有着坚实的基础,因为试图解决这些问题时没有一个是困难和低效的。

在Python中,这意味着要了解Pandas,这是一个为数据框操作提供完整框架的包,包含行和列的矩形数据集。熊猫拥有所有需要操作和重构数据的操作员,包括过滤,聚合,连接等方法。

虽然R以矩阵和数据框的形式支持矩形数据集,但您仍然可以通过学习dplyr或data.table使您的生活更加轻松。这些包中的每一个都提供了一个优秀的界面来处理比基本R更好的数据框架:dplyr更加直观和易读,而data.table更快,语法更简洁。

一旦你掌握了这些软件包中的一个,那么对这些类型的面试问题进行白板化与准备SQL面试非常相似,就像我在之前的文章中描述的那样。所有相同的概念都适用:合并,过滤,聚合和连接。与SQL一样,通过在编写代码时通过代码进行交谈来帮助您的面试官,让他们知道您在想什么,并在您没有得到最终答案的情况下给予部分功劳。

统计

统计数据是您可能要求进行白板工作的另一类问题。有点讽刺的是,这实际上是最简单的部分,因为这些语言中的复杂统计函数通常被抽象为易于使用的单行函数。

许多基本的统计函数都包含在基数R中。例如,如果要从头开始对其进行编码,则可能需要几小时的简单线性回归才可以执行:

model <- lm(y ~ x1 + x2, data = df)

可视化

除了白板问题之外,很多数据科学访谈都会有一个takehome组件,它会要求您抽取一个样本数据集,对其进行分析并得出一些结论。通常你会发回你的代码,一些解释性文本和可视化。要成功解决这个问题,上面讨论的数据操作和统计是至关重要的,但是我们还没有谈论可视化。

对于每个R和Python,实际上只有一个可视化数据的选项:在Python中,您想学习matplotlib,并在R中学习ggplot2。这两个库都提供了灵活的界面,可以创建比任一种语言的基本功能都好的数据可视化效果。

不幸的是,我发现这两个可视化软件包的语法都有点繁琐且不直观,特别是对于新程序员来说,但是一些练习应该会让你得到你需要的地方。我会避免从Stack Overflow或其他任何东西中复制和粘贴语法的诱惑,因为这只会延迟学习语法的基本结构的必要性。在掌握了其中一个之后,您了解这些细节和事实将使您更快地生成可视化文件,而无需咨询Google。

在带回家作业中可视化的一些提示:为图表标题,标记轴和标签,包含错误栏(如果适用),并选择一些颜色并持续使用它们。例如,如果您在一张图中将iOS数据点设为红色并且Android蓝色,请在所有后续的图中执行相同操作。还要保持可视化的简单性:经常需要条形图,折线图和散点图。

最后

与统计数据类似,您可以深入研究编程概念并开始感到不知所措。但是,一旦您了解了您喜欢的编程语言的基础知识,就可以轻松掌握一些关键工具:数据操作,统计和可视化。专注于这三个领域,无论您的下一位面试官会向您提出什么问题,您都会做好充分的准备。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/48394.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信