国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[原]深入對比數(shù)據(jù)科學(xué)工具箱:Python和R 的 Web 編輯器

RobinQu / 3658人閱讀

摘要:概述工欲善其事必先利其器,如果現(xiàn)在要評選數(shù)據(jù)科學(xué)中最好用的編輯器注意一定是可以通過訪問的,和一定是角逐的最大熱門,正確使用編輯器可以很大地提升我們的工作效率。

概述

工欲善其事必先利其器,如果現(xiàn)在要評選數(shù)據(jù)科學(xué)中最好用的Web 編輯器(注意一定是可以通過Web訪問的),RStudio和Jupyter一定是角逐的最大熱門,正確使用編輯器可以很大地提升我們的工作效率。本文將講解一些RStudio和Jupyter的使用技巧。

RStudio 模塊設(shè)計

RStudio編輯器整體被分為明顯的四個模塊,包括:

文本編輯區(qū)(寫代碼的地方)

控制臺(跑代碼的地方)

文檔管理區(qū)(查看幫助、繪圖預(yù)覽、文件管理等等)

狀態(tài)管理區(qū)(環(huán)境變量、版本控制、Spark鏈接管理等等)

我們可以根據(jù)自己的喜好在視圖View菜單欄選項卡中選擇各個pane的布局方式。
另外也可以通過快捷鍵快速在各個pane之間切換。
默認(rèn)的快捷鍵(可以通過 atl + shift + k 查看更多快捷鍵)是:

ctrl + 1 :切換到文本編輯區(qū)

ctrl + 2 :切換到控制臺(console)

ctrl + 3 :幫助文檔

ctrl + 4 :歷史命令

ctrl + 5 :文件夾
...


shift + ctrl + 《N》 可以放大上述區(qū)域。比如 shift + ctrl + 1 放大編輯區(qū),放大之后我們就可以專注于某一項特定的任務(wù)上。

代碼編譯與文檔預(yù)覽

在文本編輯器中,我們支持C++、Shell、Python、HTML、SQL等語言的代碼高亮以及編譯。(暫時不支持Java)
通過 快捷鍵 ctrl + shift + s (source) 即可立即編譯代碼。

如果是R,通過 system2("sh","some.sh",stdout=TRUE)函數(shù)即可捕獲腳本的輸出值。

如果是 頁面或者文檔則通過 ctrl + shift + k (knitr) 即可立即預(yù)覽。

功能設(shè)計 1. 版本控制(Git/SVN)

集成的Git/SVN的版本控制,Diff、commit、pull等等操作都非常方便。通常用Git(利用分支)來管理代碼,而SVN(利用文件夾)則用來管理文檔。

2. 文檔預(yù)覽

(演講Slides/PDF論文/HTML技術(shù)文檔/WORD產(chǎn)品文檔/Rnotebook試驗文檔)


參考前文 文檔定義應(yīng)用:數(shù)據(jù)科學(xué)的文檔革命我們可以知道,
通過Rmarkdown、knitr、slidify、pandoc等等組件可以完美輸出各式文檔,滿足不同場景下的編輯任務(wù)。(通過快捷鍵ctrl+shift+k(knitr)可以即時預(yù)覽)

需要安裝 devtools::install_github("rstudio/rmarkdown")安裝若干必要的包

3. 大數(shù)據(jù)處理(Spark)

通過Sparklyrsparklyr::spark_install(version = 2.0.0)可以一鍵安裝指定版本的Spark所需軟件,通過Spark連接管理界面控制連接的狀態(tài),利用dplyr的api直接操作spark。

4. 項目管理(Build/Project)

通過 Project 可以建立一個項目,而項目可以將項目內(nèi)的文件信息統(tǒng)一管理,配合版本控制工具在工程化中非常好用。

5. 插件系統(tǒng)(Addin)

通過 rstudioapi 和 miniUI 可以簡單制作RStudio插件并且添加快捷鍵調(diào)用,常見的一些插件:

formatR 可以規(guī)范化代碼書寫,包括自定義換行、縮進(jìn)等等

比如通過liftr可以將Rmd文檔直接作Dockerfile打包

LaTex公式轉(zhuǎn)換器,則幫我們提供一個自動的LaTex生成器

rOpensci則提供了一個Citation的查詢引用功能,等等。

6. Shell終端

通過Tool菜單可以直接進(jìn)入Shell命令行,在Web服務(wù)器上相當(dāng)于可以直接進(jìn)入Web Console,這意味著我們可以利用RStudio直接遠(yuǎn)程操作服務(wù)器的shell,在一些特定的場合下非常好用,這一點深受運維同學(xué)的青睞。

7. 代碼調(diào)試

R中自帶的異常機(jī)制并不能令人滿意,RStudio在這一點上補足了R本身的一些缺陷,我們可以簡單的通過斷點和traceback看到程序調(diào)用棧的情況。

8. 性能調(diào)優(yōu)

通過profile模塊,我們可以直接打印整個程序的火焰圖,查看到程序的運行情況和瓶頸,在工程階段非常管用。

需要安裝 devtools::install_github("rstudio/profvis")安裝必要的包

9. 文檔搜索

通過 ctrl + . 可以快速檢索函數(shù)名稱和文件名稱,
通過 ctrl + f(find) 可以局部搜索文檔,
通過 ctrl + shift + f(find) 可以全局搜索文檔。

10. 包管理工具

devtools::install_github() 直接可以安裝github上的R包,大部分情況把rstudio相關(guān)的包安裝好就可以了。

在菜單欄中可以選擇默認(rèn)的鏡像源,國內(nèi)可以選擇清華的TUNA,且RStudio默認(rèn)提供了全球的CDN加速。

一般情況可以直接通過install.packages() 直接安裝CRAN(默認(rèn))上的R包

利用packrat::init()可以做包管理的虛擬化,類似于Python中的Virtualenv,結(jié)合容器技術(shù)可以更好地發(fā)布代碼。

這里也可以不用命令行的方式來直接指定安裝的方式,可以從壓縮包或者CRAN上安裝包到特定目錄下

11. 多行編輯

按住alt鍵后鼠標(biāo)會自動變成一個十字,此時選中文本可以進(jìn)入多行編輯狀態(tài),非常實用的一個功能(類似Atom里面也是alt + 方向鍵)
當(dāng)然我們也可以按住 ctrl + alt后通過鼠標(biāo)點選,實現(xiàn)多帶帶的多行編輯。

12. 代碼提煉

由于數(shù)據(jù)的探索性,大多數(shù)時候,我們并不能很快就明確我們的函數(shù)應(yīng)該寫成什么樣,函數(shù)的輸入輸出都并不太確定。在確定了一段代碼后,我們可以利用 Extract Function 的功能把代碼快速提煉出來,增強(qiáng)代碼的復(fù)用性。

13. 權(quán)限管理

依賴于操作系統(tǒng)的用戶管理,就可以輕松實現(xiàn)RStudio的登陸權(quán)限管理。

SWOT分析 優(yōu)點與機(jī)會

開源、方便、強(qiáng)大、私有、安全(類似于MatLab Web開源版),照顧到了數(shù)據(jù)科學(xué)領(lǐng)域的方方面面,而且深得DevOps喜愛。

拓展性強(qiáng),用戶可以自定義插件或者R包來擴(kuò)展編輯器的功能。

強(qiáng)大的包管理工具減少了90%的包管理工作(剩下大多數(shù)是gcc和jdk的問題,需要通過shell里的yum/apt-get/brew去解決)。

圖形界面非常強(qiáng)大,對于不熟悉命令行的使用者學(xué)習(xí)成本非常低。

缺點和威脅

不過對于Java或者C++這樣的工程師來說并沒有太多的吸引力,因為Eclipse和VisualStudio基本可以滿足他們的特殊需求。

編輯器的運行性能有待提高,如果跑一個沒有經(jīng)過優(yōu)化的算法,引入不當(dāng)?shù)挠嬎銖?fù)雜度時可能導(dǎo)致Seesion卡死。

總結(jié)

使用RStudio,處理數(shù)據(jù)時一定記得先處理sample數(shù)據(jù),而不是一開始就做全量數(shù)據(jù)。在跑全量數(shù)據(jù)時,最好使用terminal來運行代碼,避免在Web Console中直接運行,帶來不必要的麻煩。

編譯PDF需要額外安裝latex套件,中文的問題比較麻煩,需要特殊解決;不過也可以通過html的保存為PDF形式打印輸出(HTML的樣式可以通過CSS模板調(diào)整)。

如果結(jié)合Airflow使用,通過GitDags文件夾中的.py文件做相應(yīng)的版本控制,通過RStudio直接在Web端編輯就是一個非常方便的應(yīng)用。

相對而言,RStudio需要配置的選項還比較少,一般需要配置的選項都可以通過圖形化界面完成。

建議如果只是作為編輯器使用,RStudio不要安裝Docker版本,因為Docker版本無權(quán)限直接訪問宿主的磁盤(可以通過掛載曲線救國),在多人協(xié)同的時候會產(chǎn)生一些麻煩。

在編輯器中,想要指定Python引擎來運行Python腳本可以這樣做:(通常配合virtualenv)

</>復(fù)制代碼

  1. #coding=utf-8
  2. #/your/path/python
  3. #e.g. /home/financeR/bin/python
Jupyter

除了RStudio,Jupyter則是我的另一個常用的編輯器。

模塊設(shè)計 1. 文件管理

2. 代碼編輯

3. 集群管理

代碼編譯與文檔預(yù)覽

新建notebook時可以通過一些第三方組件配置來支持多語言的編譯(折騰起來有點麻煩)

功能設(shè)計

通過 iPython 中的 %% 操作符,可以拓展許多Jupyter的功能,最基礎(chǔ)的就是%%bash操作符了,后續(xù)許多操作都依賴于它。

1. 版本控制

</>復(fù)制代碼

  1. %%bash
  2. git add .

需要通過shell腳本來搞定。

2. 文檔預(yù)覽

支持多種文件格式輸出,PDF依然需要安裝LaTex相關(guān)套件稍微麻煩點。主要是技術(shù)文檔類型的輸出,word還是需要用命令行的pandoc來輸出,slide也是需要通過如下命令完成
ipython nbconvert your_slides.ipynb --to slides

多格式的文檔轉(zhuǎn)化依然是依賴于pandoc這個輪子,技術(shù)文檔的輸出主要依賴于sphinx。

3. 大數(shù)據(jù)處理(Spark)

4. 項目管理(Virtualenv)

</>復(fù)制代碼

  1. %% bash
  2. virtualenv your_dir

依然通過命令行的方式可以創(chuàng)建一個完全隔離的項目。

5. 插件系統(tǒng)

通過生寫部分js和Python的方式也可以為系統(tǒng)添加插件。暫時沒有類似于miniUI的方式來實現(xiàn)。

</>復(fù)制代碼

  1. python3 -m IPython notebook --notebook-dir=~ --NotebookApp.server_extensions="["extensions.server_ext"]"
6. Shell終端

如果不滿足于%%bash 也可以直接切入web terminal

7. 代碼調(diào)試

Python自帶的代碼調(diào)試能力就已經(jīng)很給力,不多贅述。

8. 性能調(diào)優(yōu)

通過 profile包,我們也可以對Python進(jìn)行性能調(diào)優(yōu)。
通過graphViz也可以排查性能問題。

9. 文檔搜索

參考Reddit上的討論

我們依然可以通過下面命令解決

</>復(fù)制代碼

  1. %%bash
  2. find /|grep somethin
10. 包管理工具

通過%%bash操作符其實可以任意拓展執(zhí)行shell腳本,包管理依然可以用shell中的pip或者conda

如果要指定pip版本、源等等操作需要自己寫命令或者修改配置文件,沒有圖形化界面稍微麻煩點。

11. 多行編輯

同樣也是按住alt鍵的老套路。

13. 權(quán)限管理

通過 jupyter hub 可以支持更加強(qiáng)大的權(quán)限管理方式。

SWOT分析 優(yōu)點和機(jī)會

主要功能的拓展通過 %%bash 來完成,直接嫁接命令行的功能,對于熟悉shell腳本的程序員來說非常方便。

設(shè)計簡潔優(yōu)雅,盡量不重復(fù)造輪子,在組件開發(fā)上延續(xù)了Pythonic哲學(xué),底層代碼一覽無余,擴(kuò)展性優(yōu)秀。

代碼塊管理使得程序整體上有了很好的隔離性。

內(nèi)核切換非常方便,"%" 魔法非常好用。

缺點和威脅

缺乏豐富直觀的圖形化界面,大多數(shù)任務(wù)需要更多的代碼來實現(xiàn),學(xué)習(xí)負(fù)擔(dān)比較大。

在拓展系統(tǒng)功能方面對使用者要求比較高,需要自定義許多配置文件和組件安裝。

缺乏足夠快速的文檔檢索能力和工作區(qū)劃分功能。

需要自己折騰的地方太多,比較耗費精力。

后起之秀Zeppelin有一統(tǒng)江湖的趨勢。

總結(jié)

在更多的時候,我會選擇在Jupyter里面調(diào)試一些簡單的語法問題、requests請求API,或者集成一些markdown來制作交互式文檔。在真正工程化階段則直接使用vitmux進(jìn)行開發(fā), 因為代碼塊雖然有隔離性,不過相對于沉浸式編程還是效率低了一點。

利用iPython中的%history可以實現(xiàn)歷史命令的查看。在RStudio中則是history()或者直接通過界面查詢(還支持歷史命令的搜索和導(dǎo)出)

參考資料

Jupyter 快捷鍵

Jupyter 文檔

RStudio 快捷鍵

Vim與Python真乃天作之合:打造強(qiáng)大的Python開發(fā)環(huán)境

</>復(fù)制代碼

  1. 更優(yōu)閱讀體驗可直接訪問原文地址:https://segmentfault.com/a/11...
    作為分享主義者(sharism),本人所有互聯(lián)網(wǎng)發(fā)布的圖文均遵從CC版權(quán),轉(zhuǎn)載請保留作者信息并注明作者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,如果涉及源代碼請注明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio
    商業(yè)使用請聯(lián)系作者。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38099.html

相關(guān)文章

  • []深入對比數(shù)據(jù)科學(xué)具箱PythonR之爭[2016版]

    摘要:概述在真實的數(shù)據(jù)科學(xué)世界里,我們會有兩個極端,一個是業(yè)務(wù),一個是工程。偏向業(yè)務(wù)的數(shù)據(jù)科學(xué)被稱為數(shù)據(jù)分析,也就是型數(shù)據(jù)科學(xué)。所以說,同時學(xué)會和這兩把刷子才是數(shù)據(jù)科學(xué)的王道。 showImg(https://segmentfault.com/img/bVAgki?w=980&h=596); 概述 在真實的數(shù)據(jù)科學(xué)世界里,我們會有兩個極端,一個是業(yè)務(wù),一個是工程。偏向業(yè)務(wù)的數(shù)據(jù)科學(xué)被稱為數(shù)據(jù)...

    whidy 評論0 收藏0
  • [] 深入對比數(shù)據(jù)科學(xué)具箱Python R 異常處理機(jī)制

    摘要:對于異常機(jī)制的合理運用是直接關(guān)系到碼農(nóng)飯碗的事情所以,本文將具體介紹一下和的異常處理機(jī)制,闡明二者在異常處理機(jī)制上的異同。下面將具體介紹二者的異常處理機(jī)制。 概述 showImg(https://segmentfault.com/img/remote/1460000006760426); 異常處理,是編程語言或計算機(jī)硬件里的一種機(jī)制,用于處理軟件或信息系統(tǒng)中出現(xiàn)的異常狀況(即超出程序正...

    FreeZinG 評論0 收藏0
  • []深入對比數(shù)據(jù)科學(xué)具箱PythonR 非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化

    摘要:則在讀取數(shù)據(jù)時將兩個中文字段混淆成了一個字段,導(dǎo)致整個數(shù)據(jù)結(jié)構(gòu)錯亂。三條路子全軍覆沒,這讓我情何以堪,好在使用的經(jīng)驗頗豐,通過中文的轉(zhuǎn)換和切割就輕松解決了這個問題。 概述 showImg(https://segmentfault.com/img/bVylLL); 在現(xiàn)實場景中,由于數(shù)據(jù)來源的異構(gòu),數(shù)據(jù)源的格式往往是難以統(tǒng)一的,這就導(dǎo)致大量具有價值的數(shù)據(jù)通常是以非結(jié)構(gòu)化的形式聚合在一起的...

    leiyi 評論0 收藏0
  • []文檔定義應(yīng)用:數(shù)據(jù)科學(xué)文檔革命

    摘要:對于數(shù)據(jù)科學(xué)的研究可以說已經(jīng)是本文我將介紹如何以文檔定義應(yīng)用的方式成為數(shù)據(jù)科學(xué)中的標(biāo)準(zhǔn)交付。參考前文解密的數(shù)據(jù)科學(xué)部門如果構(gòu)建知識倉庫,作為一個謝大大的死忠,我很自然選擇了作為我文檔輸出的首選工具。 showImg(https://segmentfault.com/img/remote/1460000006760433?w=423&h=426); 概述 隨著近年來,Rstudio 通過...

    wh469012917 評論0 收藏0
  • [譯] 深入對比數(shù)據(jù)科學(xué)具箱Python R C/C++ 實現(xiàn)

    摘要:另外一個我們同時使用兩種語言的原因是已有的統(tǒng)計學(xué)工具與包。對另一些為讀者寫數(shù)據(jù)科學(xué)工具的人來說他們從一開始就考慮了這些跨語言。和實際上是用實現(xiàn)的這是條阻力最小的路徑。無論是哪個贏得這場語言戰(zhàn)爭,和都將保持在數(shù)據(jù)科學(xué)屆的地位。 showImg(https://segmentfault.com/img/remote/1460000006762469); 概述 幾周前,我有幸在 Scipy ...

    jimhs 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<