大数据文摘作品
编译:大茜、钱天培
r还是python?
真是个千古难题!
如果你主要从事数据分析、统计建模和可视化,r大概是你的不二之选。但如果你还想来搞点深度学习,整个自然语言处理,那你可还真得用python。
如果你处于交叉领域,很可能就需要两种语言切换。后果是,写个for loop还出bug真的是家常便饭。报警!
面对这种困境的绝不止你一个人!最近的kdnuggets analytics的软件调查中,python和r位居数据科学和机器学习软件的前两名。
如果你真的想提高你在数据科学领域的能力,这两种语言你确实都应该学习。
不过现在好消息来了!
rstudio开发了一个名为reticulate的包。通过安装包,你现在可以在r上运行python的安装包和函数了~
今天文摘菌就来教教你咋用这个reticulate包。
安装并加载reticulate包
运行下面的命令来安装这个包、并导入到您的系统中。
# 安装reticulate包install.packages(reticulate)# 加载reticulate包library(reticulate)
检查您的系统是否安装过python
py_available()
返回值为true或false。如果返回的是true,那恭喜你,您的系统已经有python啦。false的话就得先去装一下python了。
在r中导入一个python模块
您可以使用函数import()来导入特定的包或模块。
os<- import(“os”)os$getcwd()
上面的命令返回工作目录。
[1]c:\\users\\dell\\documents
您可以使用os包中的listdir()函数来查看工作目录中的所有文件。
os$listdir()
安装python包
第一步:创建新的工作环境;
conda_create(“r-reticulate”)
第二步:在conda环境下安装“r-reticulate”和“numpy”;
conda_install(“r-reticulate”,“numpy”)
如果“numpy”已经安装,您不必再次安装这个包。上面的代码只是给个例子而已。
第三步:加载包。
numpy<- import(“numpy”)
使用numpy数组
首先建立一个简单的numpy数组
y= 1955),:]# 回到rexit
注意:您需要键入“exit”来返回到r会话
怎样从r中获取在python中创建的对象
你可以在利用py object获取python里的对象。
summary(py$t)
在这种情况下,我会用r的summary()函数并访问在python中创建的数据集t。此外,您可以使用ggplot2软件包绘制折线图。
#利用ggplot2绘制线图library(ggplot2)ggplot(py$t, aes(air, year)) + geom_line()
怎样从python中获取在r中创建的对象
您可以使用r object来解决这个问题。
先在r中创建一个对象:
mydata = head(cars, n=15)
在python repl中调用之前在r中所创建的对象:
repl_python()import pandas as pdr.mydata.describe()pd.isnull(r.mydata.speed)exit
使用sklearn包构建logistic回归模型
sklearn软件包是python中最受欢迎的机器学习软件包之一,它支持各种统计和机器学习的算法。
repl_python()# 加载包from sklearn import datasetsfrom sklearn.linear_model import logisticregression# 加载数据库iris = datasets.load_iris()# 建立logit模型model = logisticregression()model.fit(iris.data, iris.target)# 进行预测actual = iris.targetpredicted = model.predict(iris.data)#模型性能对比矩阵print(metrics.classification_report(actual, predicted))print(metrics.confusion_matrix(actual, predicted))
其他有用的函数
查看python的配置
运行py_config()命令来查看系统中安装的r的版本。它还能显示anaconda和numpy的详细信息。
py_config()
检查某个包是否安装
可以用以下命令来检查“pandas”是否安装:
py_module_available(“pandas”)
原文链接:
https://r-bloggers/run-python-from-r/