专栏首页大数据文摘手把手 | 哇!用R也可以跑Python了

手把手 | 哇!用R也可以跑Python了

大数据文摘作品

编译:大茜、钱天培

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 <- 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)

一些数学函数

numpy$sqrt(x)
numpy$exp(x)

交互地使用Python

您可以在R中创建交互式Python控制台。您在Python中创建的对象可在R中使用(反之亦然)。通过使用repl_python()函数,可以使Python和R交互。首先,下载以下程序中使用的数据集:

repl_python()
# 加载“panda”数据集
import pandas as pd
# 载入数据集
travel = 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
exit

注意:您需要键入“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 pd
r.mydata.describe()
pd.isnull(r.mydata.speed)
exit

使用sklearn包构建Logistic回归模型

sklearn软件包是python中最受欢迎的机器学习软件包之一,它支持各种统计和机器学习的算法。

repl_python()
# 加载包
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
# 加载数据库
iris = datasets.load_iris()
# 建立logit模型
model = LogisticRegression()
model.fit(iris.data, iris.target)
# 进行预测
actual = iris.target
predicted = 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://www.r-bloggers.com/run-python-from-r/

本文分享自微信公众号 - 大数据文摘(BigDataDigest),作者:文摘菌

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TED视频-人工智能兴起,经济学家讲未来

    大数据文摘
  • 数学烂也要学AI | 带你造一个经济试用版AI终极必杀器

    大数据文摘
  • 迈向脑机接口!科学家使用多巴胺无缝连接人工神经元和生物神经元

    仅仅5年时间,神经形态装置或者大脑启发计算装置已经显得很古怪了。那什么是当前的宠儿?这就要说到人工-生物混合计算了,而人工-生物混合计算是将人造计算机芯片和生物...

    大数据文摘
  • 手把手 | 哇!用R也可以跑Python了

    如果你主要从事数据分析、统计建模和可视化,R大概是你的不二之选。但如果你还想来搞点深度学习,整个自然语言处理,那你可还真得用Python。

    生信宝典
  • Python语言入门级使用(一)

    在Windows下 需要下载一个Python,我是下载了一个activePython3.0版本,其中语法和2.X有一点差别

    用户5166556
  • linux最快的文本搜索神器ripgrep(grep的最好代替者)

    说到文本搜索工具,大家一定会知道 grep, 它是 linux 最有用并最常用的工具之一。 但如果要再一个大的工程项目中搜索某个关键词,大家也一定知道它比较耗...

    砸漏
  • 【推荐】Python教父-廖雪峰 官方『Python爬虫+数据分析』课程

    爬虫技术五花八门,市面上比比皆是,但是真正能做到极致的寥寥无几,特别是能达到商业爬虫级别的几乎没有。

    sergiojune
  • 能源行业巨变来了!能源区块链“能链”正式启动

    区块链已来,世界从此大不同 从富兰克林发现电力到十九世纪末交流电变压器出现,电网都被中心化的电力生产机制和长程输电基础设施主宰,造成了大量的冗电和线路损耗。近年...

    区块链领域
  • 37道Python经典面试题(附答案),看完面试不愁了

    python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意...

    吾非同
  • R绘图笔记 | 一般的散点图绘制

    plot函数中,x和y分别表示所绘图形的横坐标和纵坐标;函数中的...为附加的参数。plot函数默认的使用格式如下:

    DoubleHelix

扫码关注云+社区

领取腾讯云代金券