本文介绍了如何从 R 调用或运行 python。这两种工具都有自己的优点和缺点。使用这两个工具中最好的包和功能并将其组合起来总是一个好主意。在数据科学领域,这些工具在使用方面拥有良好的市场份额。R 主要以数据分析、统计建模和可视化而闻名。而Python在深度学习和自然语言处理方面很受欢迎。
在最近的 KDnuggets Analytics 软件调查民意调查中,Python 和 R 被评为数据科学和机器学习领域的前 2 位工具。如果你真的想提升你在数据科学领域的职业生涯,这些就是你需要关注的语言。
RStudio 开发了一个名为reticulate 的包,它提供了运行 R 中的 Python 包和函数的媒介。
安装和加载 Reticulate 包
运行以下命令以安装此软件包并将其导入到您的系统中。
# 安装网状包
install.packages("reticulate")
# 加载网状包
库(reticulate)
# Install reticulate package
install.packages("reticulate")
# Load reticulate package
library(reticulate)
py_available()
os <- import("os")
os$getcwd()
[1]“C:\\Users\\DELL\\Documents”
os$listdir()
[1] ".conda" ".gitignore" ".httr-oauth" [4] ".matplotlib" ".RData" ".RDataTmp" [7] ".Rhistory" "1.pdf" "12.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 安装程序的文件位置,其中 python 可执行文件存在。如果您使用Anaconda
Python,您可以找到Anaconda3文件夹,并且python.exe必须位于该文件夹下。
如果您使用Python(不使用Anaconda),您可以像这样指定路径:图书馆(网状) use_python('C:\\Users\\DELL\\Anaconda3\\python.exe', required = T) py_可用(真)
library(reticulate) use_python('C:\\Users\\DELL\\Anaconda3\\python.exe', required = T) py_available(TRUE)
use_python(Sys.which('python3'), required = T)现在你可以使用命令安装你想要的python包了
shell()
。
shell("pip install numpy")
conda_create( )
conda_create("r-reticulate")在 conda 环境中安装包
conda_install(“r-reticulate”,“numpy”)由于numpy已经安装,所以不需要再次安装。上面的例子只是为了演示。
numpy <- import("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)
Python 代码块通过```{python} 启用。```{r 设置,include=FALSE} 图书馆(网状) use_python('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_available(TRUE) ```
- ```{python}
- import pandas
- pandasdf = pd.read_csv("C:/Users/DELL/deals.csv")
- pandasdf.head()
- ```
py_run_string( )
。您可以访问使用创建的对象py$objectname
。例如,下面的代码创建 pandas 数据框。您可以使用py$pandasdf访问它
您还可以使用函数直接运行python文件py_run_string("将 pandas 导入为 pd; pandasdf = pd.read_csv('C:/Users/DELL/deals.csv');")
py_run_string("import pandas as pd; pandasdf = pd.read_csv('C:/Users/DELL/deals.csv');")
py_run_file( )
交互地使用 Pythonpy_run_file(“样本文件.py”)
py_run_file("samplefile.py")
repl_python()
函数,您可以使其具有交互性。下载下面程序中使用的数据集。
repl_python()# 加载 Pandas 包将 pandas 导入为 pd# 导入数据集旅行 = pd.read_excel("AIR.xlsx")
# 行数和列数
Travel.shape
# 选择随机数。行数 Travel.sample(n = 10) # 分组 Travel.groupby("Year").AIR.mean() # 过滤 t = Travel.loc[(travel.Month >= 6) & (travel.Year >= 1955),:] # 返回R 退出
repl_python()
# Load Pandas package
import pandas as pd
# Importing Dataset
travel = pd.read_excel("AIR.xlsx")
# Number of rows and columns
travel.shape
# Select random no. of rows
travel.sample(n = 10)
# Group By
travel.groupby("Year").AIR.mean()
# Filter
t = travel.loc[(travel.Month >= 6) & (travel.Year >= 1955),:]
# Return to R
exit
注意:需要输入exit 才能返回R环境。
从 R 运行 Python |
如何从 R 访问在 python 中创建的对象
您可以使用py 对象 来访问在 python 中创建的对象。
摘要(py$t)
summary(py$t)
在本例中,我使用R的summary()函数并访问在python中创建的数据帧t 。同样,您可以使用 ggplot2 包创建线图。
# 使用 ggplot2 库的折线图
(ggplot2)
ggplot(py$t, aes(AIR, Year)) + geom_line()
# Line chart using ggplot2
library(ggplot2)
ggplot(py$t, aes(AIR, Year)) + geom_line()
mydata = head(汽车, n=15)2. 在Python REPL中使用R创建的对象
mydata = head(cars, n=15)
repl_python()
将 pandas 导入为 pd
r。mydata.describe()
pd.isnull( r.mydata.speed )
退出
repl_python()
import pandas as pd
r.mydata.describe()
pd.isnull(r.mydata.speed)
exit
repl_python()# 加载库从sklearn导入数据集从 sklearn.linear_model 导入 LogisticRegression# 加载鸢尾花数据集iris = datasets.load_iris()# 开发 logit 模型模型=逻辑回归()model.fit(iris.data, iris.target)# 评分实际 = iris.target预测 = model.predict(iris.data)# 性能指标打印(metrics.classification_report(实际,预测))打印(metrics.confusion_matrix(实际,预测))
repl_python()
# Load libraries
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
# load the iris datasets
iris = datasets.load_iris()
# Developing logit model
model = LogisticRegression()
model.fit(iris.data, iris.target)
# Scoring
actual = iris.target
predicted = model.predict(iris.data)
# Performance Metrics
print(metrics.classification_report(actual, predicted))
print(metrics.confusion_matrix(actual, predicted))
查看 python 的配置
运行py_config( )命令 来查找系统上安装的 python 版本。它还显示有关 anaconda 和 numpy 的详细信息。
py_config()
python: C:\Users\DELL\ANACON~1\python.exe libpython: C:/Users/DELL/ANACON~1/python36.dll pythonhome: 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\numpy numpy_版本:1.14.2
python: C:\Users\DELL\ANACON~1\python.exe libpython: C:/Users/DELL/ANACON~1/python36.dll pythonhome: C:\Users\DELL\ANACON~1 version: 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] Architecture: 64bit numpy: C:\Users\DELL\ANACON~1\lib\site-packages\numpy numpy_version: 1.14.2
py_module_available("pandas")