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

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

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

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

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

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

image.png

当你第一次学习编码时,重复和语境化是必不可少的。通过不断的重复,你开始记住词汇和语法。通过项目开发,你能够理解如何以及为什么使用不同的功能和技术,并开始看到在不同的上下文环境中如何使用的代码。但是不一定有一种简单的方法可以把新的思维方式和你所说的语言联系起来,这意味着你不仅要记住一个单词,而是要对每一个编程概念有一个新的理解。甚至你写的第一行代码,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之间创建心理相似性的起点。虽然大多数数据科学家倾向于使用一种语言或另一种语言,但是在这两种语言中都能很好地使用最适合您需要的工具。

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

目录
相关文章
|
28天前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
217 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
28天前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
WK
|
14天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
65 36
|
25天前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
61 2
11种经典时间序列预测方法:理论、Python实现与应用
|
21天前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
25天前
|
机器学习/深度学习 人工智能 架构师
Python学习圣经:从0到1,精通Python使用
尼恩架构团队的大模型《LLM大模型学习圣经》是一个系统化的学习系列,初步规划包括以下内容: 1. **《Python学习圣经:从0到1精通Python,打好AI基础》** 2. **《LLM大模型学习圣经:从0到1吃透Transformer技术底座》**
Python学习圣经:从0到1,精通Python使用
|
28天前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
318 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
25天前
|
机器学习/深度学习 人工智能 架构师
|
27天前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
52 0
|
29天前
|
Linux Python
Python获得本机本地ip地址的方法
【10月更文挑战第8天】 socket模块包含了丰富的函数和方法,可以获取主机的ip地址,例如gethostbyname方法可以根据主机名获取ip地址,gethostbyname_ex方法可以获得本机所有ip地址列表,也可以使用netifaces模块获取网卡信息。
31 0
下一篇
无影云桌面