配色: 字号:
如何从 R 调用或运行 python
2023-09-17 | 阅:  转:  |  分享 
  
?本文介绍了如何从 R 调用或运行 python。这两种工具都有自己的优点和缺点。使用这两个工具中最好的包和功能并将其组合起来总是一个好主意
。在数据科学领域,这些工具在使用方面拥有良好的市场份额。R 主要以数据分析、统计建模和可视化而闻名。而Python在深度学习和自然
语言处理方面很受欢迎。在最近的 KDnuggets Analytics 软件调查民意调查中,Python 和 R 被评为数据科学和
机器学习领域的前 2 位工具。如果你真的想提升你在数据科学领域的职业生涯,这些就是你需要关注的语言。?RStudio 开发了一个名
为reticulate?的包,它提供了运行 R 中的 Python 包和函数的媒介。安装和加载 Reticulate 包运行以下命
令以安装此软件包并将其导入到您的系统中。# 安装网状包install.packages("reticulate")# 加载网状包库
(reticulate) # Install reticulate packageinstall.packages("reticu
late")# Load reticulate packagelibrary(reticulate)检查您的系统上是否可以使用 P
ythonpy_available()它返回 TRUE/FALSE。如果为 TRUE,则表示您的系统上已安装 python。在 R
中导入 python 模块您可以使用函数import( )导入特定的包或模块。 os <- import("os")os$get
cwd()上面的程序返回工作目录。[1]“C:\\Users\\DELL\\Documents”您可以使用os?包中的listdi
r( )函数来查看工作目录中的所有文件? os$listdir() [1] ".conda"
".gitignore" ".httr-oauth" [4] ".matplotlib
" ".RData" ".RDataTmp" [7]
".Rhistory" "1.pdf" "1
2.pdf" [10] "122.pdf" "124.pdf"
"13.pdf" [13] "1403.2805.pdf" "2.pdf"
"3.pdf" [16] "AIR.xlsx" "
app.r" "Apps" [19] "articles.csv"
"Attrition_Telecom.xlsx" "AUC.R"安装Python包第1步:创建新环境
最简单的方法是指定 python 安装程序的文件位置,其中 python 可执行文件存在。如果您使用AnacondaPython,
您可以找到Anaconda3文件夹,并且python.exe必须位于该文件夹下。图书馆(网状)use_python(''C:\\Us
ers\\DELL\\Anaconda3\\python.exe'', required = T)py_可用(真)library(r
eticulate)use_python(''C:\\Users\\DELL\\Anaconda3\\python.exe'', re
quired = T)py_available(TRUE)如果您使用Python(不使用Anaconda),您可以像这样指定路径:
use_python(Sys.which(''python3''), required = T)现在你可以使用命令安装你想要的pyt
hon包了shell()。 shell("pip install numpy")另一种创建环境的方法是conda_create(
)conda_create("r-reticulate")在 conda 环境中安装包 conda_install(“r-reti
culate”,“numpy”)由于numpy已经安装,所以不需要再次安装。上面的例子只是为了演示。第 2 步:加载包 numpy
<- import("numpy")使用 numpy 数组让我们创建一个示例 numpy 数组 y <- array(1:4,
c(2, 2))x <-?numpy$array(y) [,1] [,2][1,] 1 3[2,] 2 4
转置上面的数组 numpy$transpose(x) [,1] [,2][1,] 1 2[2,] 3 4特
征值和特征向量 numpy$linalg$eig(x)[[1]][1] -0.3722813 5.3722813[[2]] [,
1] [,2][1,] -0.9093767 -0.5657675[2,] 0.4159736 -0.8245648
数学函数 numpy$sqrt(x)numpy$exp(x) R Markdown 中的 Python 引擎您还可以使用 R Ma
rkdown,它允许使用 reticulate 包运行 Python 代码。在运行 Python chunk 之前,您需要加载 r
eticulate 库并设置 python(如下所示)。 ```{r 设置,include=FALSE}图书馆(网状)use_py
thon(''C:\\Users\\DELL\\Anaconda3\\python.exe'', required = T)py_可用
(真)```````{r setup, include=FALSE}library(reticulate)use_python(''
C:\\Users\\DELL\\Anaconda3\\python.exe'', required = T)py_availabl
e(TRUE)```Python 代码块通过```{python}?启用。 ```{python}import pandaspan
dasdf = pd.read_csv("C:/Users/DELL/deals.csv")pandasdf.head()```?
编辑如何直接执行Python代码您可以将 python 代码按原样放入函数中py_run_string( )。您可以访问使用创建的
对象py$objectname。例如,下面的代码创建 pandas 数据框。您可以使用py$pandasdf访问它 py_run_
string("将 pandas 导入为 pd; pandasdf = pd.read_csv(''C:/Users/DELL/de
als.csv'');")py_run_string("import pandas as pd; pandasdf = pd.rea
d_csv(''C:/Users/DELL/deals.csv'');")您还可以使用函数直接运行python文件py_run_fil
e( ) py_run_file(“样本文件.py”)py_run_file("samplefile.py")交互地使用 Pyth
on 您可以在 R 会话中创建交互式 Python 控制台。您在 Python 中创建的对象可用于您的 R 会话(反之亦然)。通过
使用repl_python()函数,您可以使其具有交互性。下载下面程序中使用的https://github.com/deepans
hu88/Datasets/raw/master/UploadedFiles/AIR.xlsx数据集。repl_python()#
加载 Pandas 包将 pandas 导入为 pd# 导入数据集旅行 = pd.read_excel("AIR.xlsx")#
行数和列数Travel.shape# 选择随机数。行数?Travel.sample(n = 10)?# 分组?Travel.gr
oupby("Year").AIR.mean()?# 过滤?t = Travel.loc[(travel.Month >= 6)
& (travel.Year >= 1955),:]?# 返回R?退出 repl_python()# Load Pandas pa
ckageimport pandas as pd# Importing Datasettravel = pd.read_excel
("AIR.xlsx")# Number of rows and columnstravel.shape# Select rand
om no. of rowstravel.sample(n = 10)# Group Bytravel.groupby("Year
").AIR.mean()# Filtert = travel.loc[(travel.Month >= 6) & (travel
.Year >= 1955),:]# Return to Rexit注意:需要输入exit?才能返回R环境。?编辑从 R 运行 P
ython如何从 R 访问在 python 中创建的对象您可以使用py?对象?来访问在 python 中创建的对象。摘要(py$t
) summary(py$t)在本例中,我使用R的summary()函数并访问在python中创建的数据帧t 。同样,您可以使用
ggplot2 包创建线图。# 使用 ggplot2 库的折线图(ggplot2)ggplot(py$t, aes(AIR, Ye
ar)) + geom_line() # Line chart using ggplot2library(ggplot2)ggpl
ot(py$t, aes(AIR, Year)) + geom_line()如何从 Python 访问在 R 中创建的对象 您可以
使用r 对象来完成此任务。?1. 让我们在R中创建一个对象mydata = head(汽车, n=15) mydata = hea
d(cars, n=15)2. 在Python REPL中使用R创建的对象 repl_python()将 pandas 导入为 p
dr。mydata.describe()pd.isnull(?r.mydata.speed?)退出 repl_python()im
port pandas as pdr.mydata.describe()pd.isnull(r.mydata.speed)exit
使用 sklearn 包构建逻辑回归模型sklearn 包是 Python 中最流行的机器学习包之一。它支持各种统计和机器学习算法
。repl_python()# 加载库从sklearn导入数据集从 sklearn.linear_model 导入 Logisti
cRegression# 加载鸢尾花数据集iris = datasets.load_iris()# 开发 logit 模型模型=逻
辑回归()model.fit(iris.data, iris.target)# 评分实际 = iris.target预测 = mo
del.predict(iris.data)# 性能指标打印(metrics.classification_report(实际,预
测))打印(metrics.confusion_matrix(实际,预测)) repl_python()# Load librar
iesfrom sklearn import datasetsfrom sklearn.linear_model import L
ogisticRegression# load the iris datasetsiris = datasets.load_iri
s()# Developing logit modelmodel = LogisticRegression()model.fit(
iris.data, iris.target)# Scoringactual = iris.targetpredicted = m
odel.predict(iris.data)# Performance Metricsprint(metrics.classif
ication_report(actual, predicted))print(metrics.confusion_matrix(
actual, predicted))其他有用的功能查看 python 的配置运行py_config( )命令?来查找系统上安装的
python 版本。它还显示有关 anaconda 和 numpy 的详细信息。py_config()python: C:\Us
ers\DELL\ANACON~1\python.exelibpython: C:/Users/DELL/ANACON~1/pyt
hon36.dllpythonhome: C:\Users\DELL\ANACON~1版本:3.6.1 |Anaconda 4.4
.0(64 位)| (默认,2017 年 5 月 11 日,13:25:24)[MSC v.1900 64 位 (AMD64)]架
构:64位numpy: C:\Users\DELL\ANACON~1\lib\site-packages\numpynumpy_版
本:1.14.2python: C:\Users\DELL\ANACON~1\python.exelibpytho
n: C:/Users/DELL/ANACON~1/python36.dllpythonhome: C:\Users\DELL\ANACON~1version: 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]Architecture: 64bitnumpy: C:\Users\DELL\ANACON~1\lib\site-packages\numpynumpy_version: 1.14.2检查是否安装了特定的软件包在下面的程序中,我们将检查是否安装了pandas软件包。 py_module_available("pandas")?
献花(0)
+1
(本文系云端筑梦师A...原创)