?本文介绍了如何从 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")? |
|