使用Python和R的五个简单快捷的技巧——让你成为高效数据科学家

使用Python和R的五个简单快捷的技巧——让你成为高效数据科学家

我最近的一个发现是许多数据科学家同时使用Python和R。

故事是这样的,他们在研究生学习和调查中使用R语言,而在工作中使用Python语言。由于许多人同时上学和工作,这些数据科学家不得不在Python和R之间来回切换,有时一天内会切换几次,这取决于他们在学校或工作中所做的工作。

因为许多(实质上:大多数)数据科学课程或学习路径都侧重于一种语言而不是另一种语言,所以在学习中存在着一个差距,忽略了帮助数据科学家在两种语言之间切换。也许令人惊讶的是,在同一天在两种编程语言之间切换可能很有挑战性,尤其是当你想完成类似的工作时。例如,web开发人员很容易在同一天内在HTML、CSS和JavaScript之间切换,因为每种语言都处理一个非常具体的网站。然而,数据科学家可以在研究生课程中用R语言完成一种类型的数据分析,而在当天晚些时候,他们需要使用Python来完成不同的工作分析。

在限定的一天内,大量的数据科学家在两种语言之间切换,这意味着需要通过提供如何更好地管理定期使用两种语言的技巧来填补数据科学教育的空白。接下来,我们将介绍几个简单的技巧,这些技巧可以在不到10分钟的时间内作为日常工作的一部分来实现,它们也将帮助你成为一个在Python和R之间切换的更高效的数据科学家。如果你想了解更多关于数据科学的相关内容,可以阅读以下这些文章:
认识Julia:数据科学的未来
以数据科学家或机器学习工程师的身份逐步构建数据管道
【Python-数据科学】Pandas Basics速查表(2023)
如何成为全栈数据科学家?

1. 在不同的日子完成Python和R任务

要想在Python和R中高效地工作,最好的方法之一就是在不同的日子里完成Python和R的工作。通过在一天批处理所有Python任务,在另一天批执行R任务,你可以保证不需要在同一天切换语言。

这在不到10分钟的时间内就能完成,因为你所需要做的就是围绕你某一天使用的语言来计划你的一周。例如,星期一、星期三和星期五可以是你在Python中完成工作的日子,而星期二和星期四则用于R的任务。

基于编程语言的日常批处理任务可以让你保持一种流动状态,你不必担心使用不同的惯例、语法或文档。相反,考虑到语言的惯例,你可以专注于编写简洁的代码,而不会陷入使用口音编码的陷阱(参见技巧5)

我记得在我大学学习软件开发的第一年,大多数编码课程都使用C#。这使得从一个课程到另一个课程变得很容易,而不必陷入使用新语言的泥潭。在我的第二年,当我们开始学习各种语言的课程,包括C#、Java、PHP等,事情变得更加困难。由于每隔两个小时就要不断地更改编程语言,这使得进入最佳状态变得更加困难。

这项挑战相当于一天说几种不同的语言。在你变得流利之前,在不同语言之间切换是一种精神负担。你的嘴和舌头需要做出的形状不同,发音不同,语法不同,语言的惯例和习俗也不同。然而,如果有一天你会说英语,下一天会说法语,后一天会说意大利语等等,你会发现你说的会更有效率和更加有效,因为你有足够的时间适应一种语言。

然而,不可能总是把一整天都花在Python或R上。有时,工作、学校和生活都会同时发生,这意味着你需要处理好几个不同的截止日期、项目和要求。另一种分批处理任务的方法是,将一天的一半时间用于Python任务,另一半时间用于R任务。然后,在中间有一个实质性的休息,在那段时间里你不做任何与任务相关的事情,你可以进入下半天,准备用不同的语言工作。

在一天的中间休息是必要的,以重置你的大脑,并给它一个机会来删除你的其他语言的使用。通过将任务分为两个不同的半天,你可以确保在Python中完成一项任务的时间不超过20分钟,然后在R中完成一个任务的时间为1小时,并且这个循环的持续会让你的大脑精疲力尽,无法发挥最大效率。

2. 找出Python和R之间的相似之处

当我在大学时,那是我用C#和Java语言工作的最轻松的时间,因为我能够发现这两种语言之间的相似之处,并利用它在两种语言中高效地工作。同样,当我学习俄语时,我发现它与法语和英语之间也有一些相似之处,这两种我都已经知道了。即使我一开始没有立即理解很多单词的含义。但这些相似之处使我后来还是能够理解这些单词。

无论它们是多么有局限性,能够在Python和R之间切换的诀窍是因为我找了这两种语言之间的相似之处。例如,Python和R都可以用来编写面向对象的代码,它们都可以用来进行统计分析。当然,使用两种不同的索引语言可能会很痛苦,但至少它们有更多的共同点而不是不同点。然而,你至少可以为两种语言使用相同的IDE,因为RStudio和Atom能够同时支持R和Python。

重要的是要记住,你在两种语言之间发现的相似之处可能与其他人发现的不同。类似于可以用不同的方式创建类比来描述两种事物之间的关系,R和Python之间的相似性也可以用来简化两种语言之间的转换。

这个技巧在不到10分钟的时间就可以完成,因为你可以开始在便签上创建Python和R的相似性列表。这张便条可以放在你的桌子上,提醒你每种语言的要点,这些要点可以很容易地从一种语言转换到另一种语言。

3. 如何在Google和StackOverflow得到你真正想知道的

我在大学学习软件开发时学到的最有价值的技能就是如何提出好的问题。我相信你可以理解,提出定义不明确的问题会导致你找到大约200个不同的StackOverflow链接,这些链接可能与你正在寻找的答案有关,也可能与你想要的答案不相关,但不够精确,无法快速解决你的问题。

使用Python和R这两种语言需要你能够针对当前使用的语言提出正确的问题。例如,以与询问Python问题相同的方式询问关于R的问题,可能会返回与前面提到的结果不完全相同的结果。

虽然将错误消息复制到搜索栏中是查找StackOverflow对类似问题的一个好方法。然而,如果你所做的只是复制一条错误消息,你真的明白哪里出错了吗?要熟悉Python和R的怪癖,更好的方法是努力理解代码中的错误。然后,你可以提出比一般错误消息更直接适用于你所面临问题的更好的问题。

练习如何提问可以在每天不到10分钟的时间内完成切换,而且最好在工作时间完成。你很快就会注意到,哪些问题会给出正确的答案,而哪些问题会引导你找到可以解决无数问题的一般答案。

4. 将技术文档放在手边并学习如何有效使用

虽然我前面提到了Python和R有更多的共同点,但它们有很大区别的一个关键地方就是它们的文档。

Python以拥有一些最好的代码文档而闻名,而R则在这方面严重缺乏。当你在两种语言之间转换时,随时保存你可以使用的文档,这可以帮助你高效地编写代码。例如,在大学期间,当我在Typescript(准确地说是Angular)中进行一个项目时,我将其文档保存在浏览器中,以便在我的知识出现缺口时随时做出准备。虽然Typescript语言类似于JavaScript,但我发现这两种语言之间有足够的学习曲线,随时准备好文档可以使转换更加顺利。

然而,我总是发现,无论写得多么好,创建自己的文档或备忘单都比查找技术文档更有价值一百万倍。你知道你是如何在制作备忘单或学习指南的同时下意识地学习的吗?当为Python和R创建参考指南、文档、工作表或学习指南时,同样的情况也适用。我在LinkedIn上看到了一些精致的参考表,它们将大量知识浓缩成一张8.5 x 11的纸,你可以打印出来,随时放在身边。这些参考表可以作为灵感和起点,开始创建自己的备忘单和文档,帮助你在Python和R之间进行切换。我喜欢在参考表中为不同的编程语言提供代码片段、公式、功能信息和软件包说明。

创建自己的参考表或获取他人的参考表只需要不到10分钟的时间,并且可以省去你记忆Python和R的复杂性。

5. 不要使用口音编码

在学习新的自然语言时带口音说话很好听。而口音编码却不是这样。

我以前说过这句话,我会再强调一遍:把一种语言当作另一种语言来编码对你没有任何好处。

当你不按原意使用它的语言编写代码时,任何其他使用的人都无法阅读它,它不会按原意运行,或者更糟的是,它甚至不知道你要它做什么。

深入了解Python和R是如何独特设计的,它们的惯例,以及它们的优缺点,将尽可能地帮助你用每种语言编写代码。这就是拥有快速参考表的原因(详见技巧4),因为它们为你提供了正确的语法、变量约定和格式,这是你正在使用的语言的标准。

Python和R在语法、格式和惯例方面有很大的不同,这就是为什么有一个参考指南可以很方便地防止你陷入口音编码中。

我确保我不带口音编码的最喜欢的方法是为我完成的每半小时或每小时工作设置一个闹钟,以提醒我检查代码的流畅性。这个代码检查耗时不到10分钟,只是提醒你检查语法、惯例和格式,以确保你在使用Python语言时编写的是Python或者使用R语言时编写的是R。

感谢阅读。你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Madison Hunter
翻译作者:王文龙
美工编辑:过儿
校对审稿:Chuang
原文链接:https://towardsdatascience.com/5-quick-and-easy-tips-to-become-an-efficient-data-scientist-in-both-python-and-r-5cf51f6396a3