999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python與R語言混合編程方法的實踐

2021-06-16 14:21:22劉曜碩
電子技術與軟件工程 2021年5期
關鍵詞:語言

劉曜碩

(中國人民解放軍63637 部隊 甘肅省酒泉市 732700)

R 語言作為主流統(tǒng)計軟件所發(fā)揮作用逐漸突出,Python 作為面向對象高級語言,具有簡單易學,易操作的特點。在實際的應用中R 語言具有強大的統(tǒng)計分析性能,但是對于大項項目分析和管理存在缺點,而Python 雖然能夠對數(shù)據(jù)信息進行準確的獲取,但是對于數(shù)據(jù)的分析需要通過R 語言作為輔助。因此,將Python 和R 語言加以混合編程能夠實現(xiàn)統(tǒng)計運算的良好進行。

1 Python編程語言和R語言相關概述

1.1 Python編程語言風格

Python 是ABC 語言代替品,其提供高效、高級的數(shù)據(jù)結構,能夠有效簡單的面向對象進行編程。Python 編程語言設計風格清晰劃一,也正是因為在這一原因Python 編程語言容易讀懂,容易維護,被大量用戶所接受,用途廣泛。Python 編程語言開發(fā)思想為,對特定問題,選擇最為有效的方式解決即可。Python 編程語言是限制性非常強的語言,在編程過程中不良的編程習慣都將導致編程無法通過編譯。例如if 語句的下一行不向右縮進。在Python 編程語言中最為重要的一點便是縮進規(guī)則。相比其他語言,Python 編程語言最為突出的特點便是模塊界限,其完全有每行首字符位置所決定,而其他語言,例如C 語言則主要使用“{}”確定模塊界限。

1.2 Python編程語言優(yōu)點

Python 編程語言具有簡單、易學、速度快、開源、免費、可移植性、解釋性、面向對象、可拓展性、可嵌入性、豐富的庫、代碼規(guī)范等優(yōu)點。

首先Python 編程語言是簡單思想語言,閱讀良好的Python 編程員對Python 編程的閱讀就如同在閱讀英語,其能夠促使相關人員更加專注的解決問題,而不是對語言本身進行摸索。也正是因為Python 編程語言的簡單性,對于Python 學習比較簡單,因為在Python 中有說明文檔。Python 編程語言底層是通過C 語言進行編寫的,多數(shù)標準款、第三方庫則是通過C 語言進行編寫的,因此運行速度較快。另外,Python 為FLOSS 之一,應用者能夠自由發(fā)布軟件拷貝,對其源代碼進行閱讀、改動,并且可以將其應用至新自由軟件內(nèi)。開源本質促使Python 能夠移植至多個平臺中,例如z/OS、BeOS、OS/2 等。解釋性為用編譯性語言,例如C 語言或C++語言編寫程序能夠由源文件轉換至用戶計算機所使用的語言。此過程通過編譯器以及不同標記、選項共同完成。當對程度進行運行時,轉載器/連接軟件將用戶程序復制至內(nèi)存中運行。但是Python 編程語言蘇編寫的程序不用編譯為二進制便能夠在源代碼中運行相關程序。計算機的內(nèi)部,Python 解釋器將源代碼轉化成字節(jié)碼中間形式,之后將其翻譯為計算機語言運行,使得Python 編程應用更加簡單,程序容易移植。面向對象則是Python 編程支持面向過程編輯,同時支持面向對象編程。面向過程語言中,程序由過程或者僅是使用重用代碼函數(shù)構建。面向對象語言中,Python 程序有功能和數(shù)據(jù)組合對象構建。可擴展性為能夠將Python 編程語言嵌入至C 語言和C++語言中,提供腳本功能。在Python 中具有龐大的標準庫,其能夠對各種工作進行處理,例如密碼系統(tǒng)、線程、GUI、文檔生成、數(shù)據(jù)庫、電子郵件、TK 等。除標準庫外[1],Python 還具有高質量庫,例如圖像庫、Twisted 等。最后,Python 編程縮進方式是代碼連續(xù)性良好,代碼規(guī)范,在對程序進行編寫是不用將其編譯為二進制。

1.3 R語言特點

R 語言為統(tǒng)計分析軟件,及圖像顯示、統(tǒng)計分析為一體,能夠應用至Mac 和Windows 系統(tǒng)中。R 語言特點具有以下特點:首先,R 語言為自由軟件,意味著R 語言完全免費,能夠在其網(wǎng)站鏡像內(nèi)下載相關安全程序、程序包、文檔資料以及源代碼,標準安裝文件中具有多個模塊、統(tǒng)計函數(shù),在進行安裝后便能夠進行常用統(tǒng)計。其次,R 語言為可編程語言,其作為開放統(tǒng)計編輯,語言易懂,易學,并且進行學習后編程者能夠通過編制函數(shù)拓展語言。同時R 語言中所有函數(shù)以及數(shù)據(jù)都保存于程序包中,當載入包時,相關內(nèi)容才能夠被運行,內(nèi)容方可被訪問。部分基本和常用程序包多收入至標準安裝文件中。新統(tǒng)計方式的出現(xiàn),安裝文件中的程序包也會隨之發(fā)生變化。另外版安裝文件內(nèi),包括base、mle、ts、mva、survival等模塊。R 語言互動性較強,除圖像輸出,其余輸出輸入窗口均在同一窗口,在輸入語法內(nèi)若發(fā)生錯誤將立即在窗口中提示,對以往輸入命令存在記憶功能,能夠將以往輸入指令調(diào)出,并加以編輯修改。輸出圖形能夠對PNG、BMP、JPG 圖像格式進行直接地保存,同時能夠對PDF 文件進行直接地保存,在數(shù)據(jù)庫和編程語言中具有良好接口。

2 Python與R語言混合編程方法分析

Python 調(diào)用使用R 語言為Python 計算機語言中rpy2 程序庫。其能夠實現(xiàn)Python 編程語言讀取調(diào)用R 語言函數(shù)、對象以及方法。如果操作系統(tǒng)安裝R3.0 和Python2.7 以上的版本時,命令行中運行pip install rpy2 便能夠對程序庫進行安裝。Rpy2 有調(diào)取方式分為兩種:低級接口和高級接口。

2.1 低級接口

在R 語言中底層的減法、加法、乘方、循環(huán)、開方等基礎運算,運算速度比較慢,由于R 語言屬于解釋型的語言,處理器對每一句代碼進行臨時的編譯,下達指令后進行計算。但在矩陣運行方面速度較快,尤其是存在多個統(tǒng)計運算包的情況時,能夠直接由C 語言層面對復雜統(tǒng)計語言進行運算,甚至有時能夠超過Python中scipy、numpy 運算庫的運行效率。在rpy2 低級接口主要用于高級接口沒有封裝或者對于運算性能具有特殊需求時。Python 引入rpy2.rinterface 模塊便能夠對低級接口加以使用,例如In4:

需要注意在其中需要使用initr()函數(shù)對R 語言進行初始化,確保后續(xù)接口的正常使用。同時需要注意的是此代碼只能夠進行一次運行,避免出現(xiàn)錯誤。

對于低級接口的調(diào)用方式和高級接口相似,差異處為低級接口能夠對當前R 運行環(huán)境內(nèi)R 語言對象進行訪問,此過程通過rpy2.rinterface.globalenv 中get 函數(shù)完成,此函數(shù)將在Python 中構建指向R 語言環(huán)境sexp 指針對象。

通過相關操作可以發(fā)現(xiàn),低級接口無法對R 語言結果直接通過print 函數(shù)進行打印,由于Python 中儲存對象實際指向內(nèi)存地址。對具體數(shù)據(jù)進行訪問需要對變量下標進行訪問,例如通過PearsonX2 進行檢驗之后通過下標對P 值、自由度、統(tǒng)計量加以表示[2]。

2.2 高級接口

Python 引入rpy2.robjects 模塊便能夠對高級接口加以使用,例如In1:import rpy2.robjects as robjects。

之后將rpy2.Robjects.r 內(nèi)封裝R 語言對象簡寫為robjects.r。對于R 語言高級接口應用首先需要在Python 內(nèi)建立R 語言矩陣對象。通過比較分析,通過rpy2.robjects.IntVector 把Python 內(nèi)list 元素轉化為R 語言內(nèi)常用數(shù)據(jù)結構——向量,相當于R 語言內(nèi)通過data=C(99,75,5,21)創(chuàng)建向量。另外,在rpy2.robjects.r 內(nèi)集成矩陣函數(shù),將Python 內(nèi)創(chuàng)建向量作為參數(shù),對列數(shù)、行數(shù)加以確定后,便能夠在Python 內(nèi)使用R 語言矩陣對象。相同,能夠通過rpy2.robject.DataFrame 對R 語言數(shù)據(jù)框進行定義。其中rpy2.robjects.r[r—code]中,如果把r— code 換為R 語言內(nèi)的變量名或函數(shù)名,將其賦值為Python 變量,便能夠創(chuàng)建對應的函數(shù)或者變量Python 對象。將R 語言內(nèi)chisq.test 的函數(shù)賦值至變量chisq—test 內(nèi)創(chuàng)建函數(shù)對象,之后把chisq—test 作為普通Python 的函數(shù)進行使用。對于函數(shù)參數(shù)的設置和R 語言保持一致。在完成后,將之前創(chuàng)建數(shù)據(jù)放至chisq—test 中作參數(shù),并能夠得出相關的檢驗結果。因此,Python 通過rpy2 調(diào)取R 語言中統(tǒng)計函數(shù)非常簡便,同時程序可讀性較強。

3 Python與R語言混合編程方法的實踐應用

3.1 實例背景

通過weather underground 所提供氣候數(shù)據(jù)接口,對廣州近五年氣溫數(shù)據(jù)獲取,之后按照相關數(shù)據(jù)對廣州未來天氣情況進行預測,并通過R 語言程序包開展時間序列制圖。

3.2 獲取數(shù)據(jù)

通過Python 內(nèi)bs4 庫和urllib2 庫中Beauti—fulSoup 模塊對網(wǎng)頁數(shù)據(jù)進行獲取,urllib2 為Python 中獲取URLs 相關組件,其對指定URL 發(fā)出相應請求,實現(xiàn)數(shù)據(jù)信息的獲取,在此通過GET 方式請求網(wǎng)站氣象數(shù)據(jù)相應接口,之后對指定城市,指定時間內(nèi)氣象數(shù)據(jù)進行獲取。BeautifulSoup 模塊主要是提供處理導航、修改分析樹、搜索函數(shù),利用解析文檔向用戶提供數(shù)據(jù)抓取服務。在此通過應用該模塊能夠自由按照實際需求對urllib2 庫所獲取氣象數(shù)據(jù)進行提取,例如廣州地區(qū)天氣氣溫、濕度、風向、風力以及日出日落時間。如果只需要獲取氣溫數(shù)據(jù),則可通過BeautifulSoup 模塊對urllib2中數(shù)據(jù)進行單獨提取。

3.3 整理數(shù)據(jù)

因為所獲取的氣溫數(shù)據(jù)單位是華氏度,需要將相關數(shù)據(jù)轉換成攝氏度。通過Python 需要通過循環(huán)語句對數(shù)據(jù)進行逐一地轉換,但是R 語言中通過利用其矩陣特性,data.frame 數(shù)據(jù)框內(nèi)僅需一句代碼便能夠進行批量轉換。如全文所提。通過rpy2.robject.DataFrame 在R 語言內(nèi)定義一個數(shù)據(jù)框,便能夠進行數(shù)據(jù)轉換工作[3]。

3.4 分析數(shù)據(jù)

通過R 語言forecast 程序包生成、預測序列數(shù)據(jù)。第一,通過msts 函數(shù)建立具有季節(jié)效應時間序列,為實現(xiàn)簡單便捷,將季節(jié)效應時間設定成1年,將seasona1.periods 設置成365.25。之后通過tbats 函數(shù)將數(shù)據(jù)放入TBATA 模型中進行空間建模。通過forecast生成預測數(shù)據(jù)。

3.5 可視化作圖

對數(shù)據(jù)進行分析后,便能夠通過R 語言ggplot2 程序包進行可視化作圖,需要注意,rpy2 已經(jīng)被封裝與R 語言ggplot2 程序包內(nèi),只需要在Python 中引入 rpy2.robjects.1ib.ggplot2 模塊便可在Python 內(nèi)通過ggplot2 函數(shù)作圖。

4 總結

本文對Python 與R 語言混合編程方法進行分析,并通過實際案例對Python+R語言編程的數(shù)據(jù)獲取與統(tǒng)計運算可行性進行展示。在應用過程中對Python 與R 語言優(yōu)勢進行結合,在其中兩種語言對各自發(fā)揮作用。對于該技術的應用需要在實際研究中加以充分開發(fā),從而實現(xiàn)Python 與R 語言混合編程廣泛應用。

猜你喜歡
語言
詩之新,以語言創(chuàng)造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態(tài)分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
Only Words慎用你的語言
主站蜘蛛池模板: 欧美色伊人| 国产成人综合欧美精品久久| 国产一级二级三级毛片| 国产欧美日韩va另类在线播放| 国产成人欧美| 国产视频欧美| 午夜激情婷婷| 波多野结衣久久高清免费| 在线网站18禁| 国产成人91精品| 久久精品人人做人人| 久久无码av一区二区三区| 亚洲中文字幕久久精品无码一区| 91麻豆国产精品91久久久| P尤物久久99国产综合精品| 成人午夜免费观看| 国产精品久久久久久久伊一| 亚洲国产综合第一精品小说| 欧美成人aⅴ| 国产精品久久久久鬼色| 欧美精品亚洲精品日韩专区va| 国产性精品| 欧洲高清无码在线| 视频二区亚洲精品| 午夜精品久久久久久久99热下载| 国产va欧美va在线观看| 国产在线麻豆波多野结衣| 在线亚洲精品自拍| 精品国产Av电影无码久久久| 亚洲AV成人一区国产精品| 91偷拍一区| 人禽伦免费交视频网页播放| 国产精品对白刺激| 亚洲不卡无码av中文字幕| 亚洲色欲色欲www在线观看| 女人爽到高潮免费视频大全| 欧美日韩精品综合在线一区| 亚洲热线99精品视频| 久久特级毛片| 精品国产三级在线观看| 国产精品香蕉在线观看不卡| 九一九色国产| 日本人妻一区二区三区不卡影院 | 亚洲狼网站狼狼鲁亚洲下载| 人妻精品全国免费视频| 99精品免费在线| 中文字幕波多野不卡一区| 99re经典视频在线| 国产又爽又黄无遮挡免费观看| 精品色综合| 欧美在线观看不卡| 亚洲综合激情另类专区| 亚洲婷婷丁香| 伊人AV天堂| 亚洲区一区| 国产毛片基地| 国产欧美日韩一区二区视频在线| 国产毛片基地| 找国产毛片看| 久久香蕉国产线| 这里只有精品免费视频| 日韩毛片在线播放| 99久久国产精品无码| av在线无码浏览| 操操操综合网| 一本久道久综合久久鬼色| 成年女人18毛片毛片免费| 欧美一区二区人人喊爽| 国产成人综合日韩精品无码首页| 欧美激情综合一区二区| 五月婷婷中文字幕| 国产第一页亚洲| 国产成人超碰无码| 成人福利在线看| 亚洲欧洲一区二区三区| 婷婷六月激情综合一区| 国产亚洲美日韩AV中文字幕无码成人 | 国产一区二区三区在线观看视频 | 东京热av无码电影一区二区| 国产精品久线在线观看| 免费国产在线精品一区| 久久亚洲美女精品国产精品|