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

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

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

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

当你第一次学习编码时,重复和语境化是必不可少的。通过不断的重复,你开始记住词汇和语法。通过项目开发,你能够理解如何以及为什么使用不同的功能和技术,并开始看到在不同的上下文环境中如何使用的代码。但是不一定有一种简单的方法可以把新的思维方式和你所说的语言联系起来,这意味着你不仅要记住一个单词,而是要对每一个编程概念有一个新的理解。甚至你写的第一行代码,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

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

  1. python变量类型之间转换_Python常用数据类型之间的转换总结

    函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...

  2. python变量类型之间转换_【Python】Python 变量类型(变量赋值,数据类型,数据转换)...

    目录 Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数 ...

  3. python变量类型之间转换_python学习笔记5—数据类型转换

    数据类型转换 16进制和10进制之间转换In [18]: int('a',16) 把16进制的a转换为10进制的10,16说明a是16进制数 Out[18]: 10 In [13]: int('0xa ...

  4. python变量类型之间转换_Python变量赋值类型转换

    原博文 2018-01-22 22:05 − 1.Python定义变量 1 name = cross10 2 print('name=',name) 打印结果: name=cross10 2.Pyth ...

  5. python的chr可以转换中文吗,chr()在python中怎么实现编码的转换

    chr()在python中怎么实现编码的转换 发布时间:2020-12-14 09:36:42 来源:亿速云 阅读:95 作者:小新 这篇文章主要介绍chr()在python中怎么实现编码的转换,文中 ...

  6. python批量读取图片并复制入word_提取word文档中的图片并使用Python进行批量格式转换,出,Word,里,利用,python...

    日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...

  7. python实现图片格式转换_干货必看 | Python实现图片格式转化

    今天教大家一个实用的小技巧,用Python实现图片格式转化,即将PDF格式转化成PNG格式. 整体代码: import fitz ''' #将PDF转化为图片 pdfPath pdf文件的路径 img ...

  8. python中字符串之间的比较_如何利用python来对比两个字符串的差异

    今天来介绍如何通过difflib模块实现字符串差异对比.Difflib的作用是对比文本之间的差异,且支持输入可读性比较强的HTML文档.下面来看一下示例. 1. 两个字符串的差异对比,代码如下: im ...

  9. 为何python攀上数据科学巅峰?调查显示Python超越R

    根据KDnuggets 2017年最新调查,Python生态系统已经超过了R,成为了数据分析.数据科学与机器学习的第一大语言.本文对KDnuggets的此项调查结果做了介绍,并补充了一篇文章讲解为何P ...

  10. python进制转换函数-Python中进制转换函数的使用

    Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...

最新文章

  1. 有哪些适合放在程序员办公桌上的高逼格物件?哈哈哈哈哈哈哈!
  2. matlab中的科学记数法变成小数形式
  3. python request-urllib.request
  4. 陷入迷茫的时候怎么办呢?
  5. 如果编程语言是女孩子
  6. 剧情反转:今年AI要凉!薪资碾压全行,但人才缺500万!
  7. android 高质量游戏,你玩过几款?2013年度十大安卓热门游戏大盘点
  8. ElasticSearch的搜索推荐(typeahead)
  9. Java日常编程优化细节
  10. 1100名达摩院“扫地僧”加持,阿里云的下一个十年
  11. 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)
  12. 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1-2-3-3-4-4-5 处理后为 1-2-5(非常简单明了)
  13. mysql中的concat和group_concat的用法
  14. 力软部署oracle,力软敏捷开发框架
  15. 制作png格式透明图片的简易方法
  16. Zybo构建Linux Linaro系统
  17. 查询快递单号物流,筛选出代收的单号
  18. 天文学论文绘图注意事项
  19. 物联网-云平台可靠性设计
  20. Apple苹果产品MFi设计及标准汇总

热门文章

  1. 无刷直流电机四象限matlab pudn,Matlabmodel 在分析无刷直流电机 BLDC 数学模型的基础上 提出了无刷直 联合开发网 - pudn.com...
  2. 微弱信号放大电路(电磁超声)
  3. 特征值与特征向量及其应用
  4. matlab 神经网络训练 分类器,matlab神经网络分类器
  5. Android路由器初始密码,了解路由器用户名和万能密码
  6. 12款高质量的免费 HTML 网页模板下载
  7. 数据结构-01-图解后缀表达式值计算方式
  8. AutoCAD2000 DWG 格式 section location部分(简述)
  9. 量产台电U盘 把USB变成USB-CDROM
  10. 14种最佳的PHP帮助台脚本和5种免费选项