专栏首页DeepHub IMBAPython和R之间转换的基本指南:使用Python或R知识来有效学习另一种方法的简单方法

Python和R之间转换的基本指南:使用Python或R知识来有效学习另一种方法的简单方法

这里介绍的方法与我们自学习外语的时候使用的方法是有共同之处的,例如我们要学习英语,可以使用以下三个关键的练习帮助我从笨拙地将中文单词翻译成英语,转变为直接用英语思考和回答(英语思维)。

把新的英语单词和我已经知道的中文单词关联起来。把英语和中文的单词作比较,使我能很快地领会这个生词的意思。

重复这个词很多次,并在许多不同的场景中使用它,把这个词深深地刻在我的脑海里。

利用上下文线索使我能够更好地理解这个词在同义词上的用法和原因。

当你第一次学习编码时,重复和语境化是必不可少的。通过不断的重复,你开始记住词汇和语法。通过项目开发,你能够理解如何以及为什么使用不同的功能和技术,并开始看到在不同的上下文环境中如何使用的代码。但是不一定有一种简单的方法可以把新的思维方式和你所说的语言联系起来,这意味着你不仅要记住一个单词,而是要对每一个编程概念有一个新的理解。甚至你写的第一行代码,print(“你好,世界!“)要求您了解print函数的工作原理、编辑器如何返回print语句以及何时使用引号。当你学习第二种编程语言时,你可以将你所知道的语言中的概念翻译成新的语言,从而更有效、更快地学习。

数据科学的世界被Python的拥护者和R的狂热者分割开来。但是,任何学习过其中一种语言的人,都应该充分利用它们的优势,深入到另一种语言中去,而不是宣称自己是一方。Python和R之间有着无限的相似性,而且这两种语言都是您可以使用的,您可以用最好的方式解决挑战,而不是将自己限制在工具库的一半。

下面是一个连接R和Python的简单指南,便于两者之间的转换。通过建立这些连接、反复与新语言交互以及与项目的上下文化,任何理解Python或R的人都可以快速地开始在另一种语言中编程。

基础

可以看到Python和R的功能和外观非常相似,只是语法上的细微差别。

数据类型

 # Python                                  # R
 type()                                      class()
 type(5) #int                             class(5) #numeric
 type(5.5) #float                       class(5.5) #numeric
 type('Hello') #string                class('Hello') #character
 type(True) #bool                      class(True) #logical

赋值

 # Python                              # R
 a = 5                                 a <- 5

导包

 # Python                                          # R
 pip install packagename               install.packages(packagename)
 import packagename                    library(packagename)

数学计算包:数学在所有语言中都是一样的

 # Python                                  # R
 + - / *                                       + - / *# The same goes for logical operators
 < #less than                              < #less than
 > #greater than                       > #greater than
 <= #less than or equal to        <= #less than or equal to
 == #is equal to                       == #is equal to
 != #is not equal to                   != #is not equal to
 & #and                                    & #and
 | #or                                         | #or

调用函数

 # Python                                          # R
 functionname(args, kwargs)            functionname(args, kwargs)
 print("Hello World!")                         print("Hello World!")

条件判断

 # Python                              # R
 if True:                                  if (TRUE) {
     print('Hello World!')                     print('Go to sleep!')
 else:                                     } else {
     print('Not true!')                        print('Not true!')
                                               }

列表和向量:这个有点难,但是我发现上面说的关联的方法很有用。

在python中,列表是任何数据类型的有序项的可变集合。Python中的列表索引从0开始,不包括0。

在R中,向量是同一类型的有序项的可变集合。索引R中的向量从1开始,并且是包含的。

  Python                                      # R
 ls = [1, 'a', 3, False]                   vc <- c(1, 2, 3, 4)# Python indexing starts at 0, R indexing starts at 1
 b = ls[0]                                     b = vc[1]
 print(b) #returns 1                     print(b) #returns 1c = ls[0:1]                           c = vc[1:2]
 print(c) #returns 1                      print(c) #returns 1,

循环

 # Python                              # R
 for i in range(2, 5):                 for(i in 1:10) {
     a = i                                     a <- i }

数据操作

python和R都提供了简单而精简的数据操作包,使它们成为数据科学家必不可少的工具。

这两种语言都配备了能够加载、清理和处理数据的包。

python使用pandas、R使用tidyverse,并且他们的函数基本相同。

两种语言都允许多个操作通过管道(pipe)连接在一起。在python中使用“.” 在R中使用“%>%”组合不同的操作。

读取、写入和查看数据

 # Python                                          # R
 import pandas as pd                       library(tidyverse)
 # load and view data
 df = pd.read_csv('path.csv')             df <- read_csv('path.csv')
 df.head()                                          head(df)
 df.sample(100)                                sample(df, 100)
 df.describe()                                    summary(df)
 # write to csv
 df.to_csv('exp_path.csv')                  write_csv(df, 'exp_path.csv')

重命名和添加列

 # Python                                         # R
 df = df.rename({'a': 'b'}, axis=1)       df %>% rename(a = b)
 df.newcol = [1, 2, 3]                         df$newcol <- c(1, 2, 3)
 df['newcol'] = [1, 2, 3]                      df %>% mutate(newcol = c(1, 2, 3))

选择和筛选列

 # Python                              # R
 df['col1', 'col2']                    df %<% select(col1,col2)
 df.drop('col1')                      df %<% select(-col1)

筛选行

 # Python                              # R
 df.drop_duplicates()             df %<% distinct()
 df[df.col > 3]                        df %<% filter(col > 3)

排序

 # Python                                      # R
 df.sort_values(by='column')           arrange(df, column)

聚合

 # Python
 df.groupby('col1')['agg_col').agg(['mean()']).reset_index()
# R df %>%
     group_by(col1) %>%
     summarize(mean = mean(agg_col, na.rm=TRUE)) %>%
     ungroup() #if resetting index

使用筛选器聚合

 # Python
 df.groupby('col1').filter(lambda x: x.col2.mean() > 10)
# R df %>%
     group_by(col1) %>%
     filter(mean(col2) >10)

合并dataframe

 # Python
 pd.merge(df1, df2, left_on="df1_col", right_on="df2_col")
# R merge(df1, df2, by.df1="df1_col", by.df2="df2_col")

上面的例子是在Python和R之间创建心理相似性的起点。虽然大多数数据科学家倾向于使用一种语言或另一种语言,但是在这两种语言中都能很好地使用最适合您需要的工具。

我们的最终的目的并不是为了熟练的掌握另一门语言并用它开发,而是能够看懂另一门语言所写的代码,并把它的思想应用到我们自己的项目中去。

作者:Molly Liebeskind

本文分享自微信公众号 - DeepHub IMBA(deephub-imba),作者:P**nHub兄弟网站

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

原始发表时间:2020-05-18

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • keras搭建基于自动编码器的异常检测技术进行欺诈识别

    我最近阅读了一篇名为《使用自动编码器进行异常检测》的文章,在该文中对所生成的数据进行了实验,并且我认为将使用自动编码器进行异常检测这一想法应用于真实世界当中的欺...

    deephub
  • Adam 优化算法详解

    Adam Optimizer是对SGD的扩展,可以代替经典的随机梯度下降法来更有效地更新网络权重。

    deephub
  • 使用机器学习和Python揭开DNA测序神秘面纱

    “脱氧核糖核酸(DNA)是一种分子,其中包含每个物种独特的生物学指令。DNA及其包含的说明在繁殖过程中从成年生物传给其后代。“ —genome.gov

    deephub
  • Python开发必备的6个库,有了它事半功倍!

    01 Python 必备之 PyPy PyPy 主要用于何处? 如果你需要更快的 Python 应用程序,最简单的实现的方法就是通过 PyPy ,Python ...

    BestSDK
  • 资源 | 10x Python开发者必读:本月Python文章TOP 10

    翻译 | AI科技大本营 参与 | 刘畅 编辑 | Donna 【AI科技大本营导语】Medium热门博客Mybridge AI例行评出本月10篇有助于提升你职...

    AI科技大本营
  • 我常用的10个Python实用小Trick

    大家好,都说追女孩方法大于态度,学Python也是,今天就给大家分享的是我在用Python编写程序时常用的一些小技巧。

    刘早起
  • 10x Python开发者必读:本月Python文章TOP 10

    翻译 | AI科技大本营 参与 | 刘畅 编辑 | Donna 【AI科技大本营导语】Medium热门博客Mybridge AI例行评出本月10篇有助于提升你职...

    企鹅号小编
  • 【知识】使用Python来学习数据科学的完整教程

    编者按:Python学习和实践数据科学,Python和Python库能够方便地完成数据获取,数据探索,数据处理,数据建模和模型应用与部署的工作,对于数据科学工作...

    陆勤_数据人网
  • 从Python安装到语法基础,这才是小白都能懂的爬虫教程

    导读:本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法。

    华章科技
  • 别人Python都玩腻了,而你却连安装工具库都搞不清楚!

    9:00 你打开电脑,双击各部门交上来的周报,轻车熟路地开始了crtlC,ctrlV工作,把表格统计在一起。 15:00 你发现投资部的表格里多了一个字段,导致...

    昱良

扫码关注云+社区

领取腾讯云代金券