• 第二章:25+ Python 数据操作教程(第二十二节如何从 R 调用或运行 python)持续更新


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

    检查您的系统上是否可以使用 Python
    py_available()
    它返回 TRUE/FALSE。如果为 TRUE,则表示您的系统上已安装 python。

    在 R 中导入 python 模块

    您可以使用函数import( )导入特定的包或模块。
    os <- import("os")
    os$getcwd()
    上面的程序返回工作目录。
    [1]“C:\\Users\\DELL\\Documents”
    

    您可以使用os 包中的listdir( )函数来查看工作目录中的所有文件   
    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包

    第1步:创建新环境

    最简单的方法是指定 python 安装程序的文件位置,其中 python 可执行文件存在。如果您使用AnacondaPython,您可以找到Anaconda3文件夹,并且python.exe必须位于该文件夹下。

    图书馆(网状)
    use_python('C:\\Users\\DELL\\Anaconda3\\python.exe', required = T)
    py_可用(真)

    1. library(reticulate)
    2. use_python('C:\\Users\\DELL\\Anaconda3\\python.exe', required = T)
    3. py_available(TRUE)
    如果您使用Python(不使用Anaconda),您可以像这样指定路径:
    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已经安装,所以不需要再次安装。上面的例子只是为了演示。

    第 2 步:加载包
    numpy <- import("numpy")
    使用 numpy 数组

    让我们创建一个示例 numpy 数组
    y <- array(1:4, c(2, 2))
    x <-  numpy$array(y)
    1. [,1] [,2]
    2. [1,] 1 3
    3. [2,] 2 4


    转置上面的数组
    numpy$transpose(x)
    1. [,1] [,2]
    2. [1,] 1 2
    3. [2,] 3 4

    特征值和特征向量
    numpy$linalg$eig(x)
    1. [[1]]
    2. [1] -0.3722813 5.3722813
    3. [[2]]
    4. [,1] [,2]
    5. [1,] -0.9093767 -0.5657675
    6. [2,] 0.4159736 -0.8245648

    数学函数
    numpy$sqrt(x)
    numpy$exp(x)
     
    R Markdown 中的 Python 引擎
    您还可以使用 R Markdown,它允许使用 reticulate 包运行 Python 代码。在运行 Python chunk 之前,您需要加载 reticulate 库并设置 python(如下所示)。
    ```{r 设置,include=FALSE}
    图书馆(网状)
    use_python('C:\\Users\\DELL\\Anaconda3\\python.exe', required = T)
    py_可用(真)
    ````

    1. ```{r setup, include=FALSE}
    2. library(reticulate)
    3. use_python('C:\\Users\\DELL\\Anaconda3\\python.exe', required = T)
    4. py_available(TRUE)
    5. ```
    Python 代码块通过```{python} 启用。
    1. ```{python}
    2. import pandas
    3. pandasdf = pd.read_csv("C:/Users/DELL/deals.csv")
    4. pandasdf.head()
    5. ```
    如何直接执行Python代码
    您可以将 python 代码按原样放入函数中py_run_string( )。您可以访问使用创建的对象py$objectname。例如,下面的代码创建 pandas 数据框。您可以使用py$pandasdf访问它
    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');")

    您还可以使用函数直接运行python文件py_run_file( )
    py_run_file(“样本文件.py”)
    py_run_file("samplefile.py")

    交互地使用 Python
    您可以在 R 会话中创建交互式 Python 控制台。您在 Python 中创建的对象可用于您的 R 会话(反之亦然)。
    通过使用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()

    如何从 Python 访问在 R 中创建的对象
    您可以使用r 对象来完成此任务。 
    1. 让我们在R中创建一个对象
    mydata = head(汽车, n=15)

    mydata = head(cars, n=15)

    2. 在Python REPL中使用R创建的对象
    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

    使用 sklearn 包构建逻辑回归模型
    sklearn 包是 Python 中最流行的机器学习包之一。它支持各种统计和机器学习算法。
    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

    1. python: C:\Users\DELL\ANACON~1\python.exe
    2. libpython: C:/Users/DELL/ANACON~1/python36.dll
    3. pythonhome: C:\Users\DELL\ANACON~1
    4. version: 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]
    5. Architecture: 64bit
    6. numpy: C:\Users\DELL\ANACON~1\lib\site-packages\numpy
    7. numpy_version: 1.14.2


    检查是否安装了特定的软件包

    在下面的程序中,我们将检查是否安装了pandas软件包。
    py_module_available("pandas")
  • 相关阅读:
    Set 数据构造函数
    如何把三维可视化分析做出高级感
    中国金刚石工具市场发展现状及供需格局分析预测报告
    从硬件“卷”到UI交互,车企怎样才能掌握智能化「灵魂」
    【21天算法学习】希尔排序
    Jetpack Compose 教程之 从一开始就投资于良好的导航框架将帮助您在之后节省大量的迁移工作
    DOM4J解析.XML文件
    【从零开始学习Redis | 第三篇】在Java中操作Redis
    面试题:什么是Reids的击穿、穿透、雪崩三种现象?如何解决?
    C++中第三方库的一般使用方式(libxl库为例)
  • 原文地址:https://blog.csdn.net/wly476923083/article/details/132928090