一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

2021-05-20 01:23今日頭條deephub Java教程

jupiter notebooks 在更廣泛的編程社區(qū)中名聲不佳。喬爾·格魯斯(Joel Grus)在2018年JupyterCon上勇敢地發(fā)表了著名的“我不喜歡notebooks ”演講,其中涵蓋了許多原因。

通常,notebook被認(rèn)為是促進(jìn)糟糕的編碼實(shí)踐,因?yàn)樗鼈兒茈y進(jìn)行版本控制,經(jīng)常依賴于以特定順序運(yùn)行的單元格來返回正確的結(jié)果,并且測(cè)試和調(diào)試可能很棘手。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

但是,當(dāng)涉及到探索性數(shù)據(jù)分析和初始機(jī)器學(xué)習(xí)模型開發(fā)等任務(wù)時(shí),jupiter notebooks 仍然是大多數(shù)數(shù)據(jù)科學(xué)家的首選。根據(jù)代碼可視化輸出(如圖表和表)以及向分析中添加豐富注釋的能力是任何其他工具都無法復(fù)制的。

雖然notebook仍然是如此受歡迎的選擇,但值得研究一些可用的選項(xiàng),以克服可能使notebook代碼不那么健壯的一些問題。在本文中,我將通過代碼示例簡(jiǎn)要介紹為某些問題提供解決方案的4種工具。這些包括:

  1. Nbdime 更好的版本控制
  2. nbQA 運(yùn)行l(wèi)int
  3. Jupyter-nbrequirements 管理依賴
  4. nbval 進(jìn)行驗(yàn)證

Nbdime更好的版本控制

 

使用Github之類的工具對(duì)notebook進(jìn)行版本控制可能很困難。版本控制工具不能很好地呈現(xiàn)差異,因?yàn)樗鼈儾荒芾斫獾湫蚽otebook的邏輯結(jié)構(gòu)。這可能會(huì)使跟蹤更改和合并代碼變得困難,

Nbdime是一個(gè)旨在解決這個(gè)問題的工具,它提供了更豐富的、可視化的差異,可以很容易地看到同一notebook的不同版本之間的變化。

Nbdime可以通過pip安裝。

  1. pip install nbdime 

這應(yīng)該會(huì)自動(dòng)安裝和啟用擴(kuò)展。如果沒有正確安裝,可以使用以下命令手動(dòng)安裝,添加一個(gè)標(biāo)志來確定為——system(系統(tǒng)范圍)、——user(當(dāng)前用戶)、——sys-prefix(當(dāng)前虛擬環(huán)境)安裝。

nbdime extensions --enable [--sys-prefix/--user/--system]

一旦一切都安裝好,如果你打開一個(gè)jupiternotebook,你現(xiàn)在應(yīng)該有以下新圖標(biāo)在你的工具欄。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

我創(chuàng)建了一個(gè)notebook來展示nbdime的功能,它在波士頓房?jī)r(jià)數(shù)據(jù)集上訓(xùn)練一個(gè)簡(jiǎn)單的線性模型。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

新的圖標(biāo)現(xiàn)在應(yīng)該在notebook的工具欄上可用,形成nbdime的web視圖功能。這個(gè)視圖提供了對(duì)notebook所做的更改的豐富的可視化表示。

點(diǎn)擊git按鈕將顯示上次提交和當(dāng)前保存的notebook版本之間的差異。

單擊看起來像鐘面的圖標(biāo)將顯示最新檢查點(diǎn)和當(dāng)前保存的版本之間的差異。

我將對(duì)notebook做一些改變,并使用web視圖查看與上次提交的差異。

在notebook中,我改變了我正在使用的模型,并對(duì)殘差圖做了一個(gè)小的改變。讓我們看一下nbdime提供的結(jié)果差異。

從下面的圖片中可以看到,nbdime逐行和單元格顯示了自上次提交以來所更改的內(nèi)容。它甚至顯示了每個(gè)單元格的輸出是如何改變的,包括圖形。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

nbQA進(jìn)行代碼檢查

 

Linting是一個(gè)檢查代碼質(zhì)量的過程。linting工具會(huì)掃描代碼并檢查常見的樣式錯(cuò)誤。例如,Python lint通常檢查不符合廣泛使用的風(fēng)格指南(如Pep8)的代碼。

NbQa是一個(gè)可以讓你在jupiternotebook上運(yùn)行任何標(biāo)準(zhǔn)python linter的工具。下面的代碼可以通過這個(gè)工具訪問:pylint, black, auto flake, check-ast, doctest, flake8, mypy和yapf。

要安裝,只需運(yùn)行以下程序。

  1. pip install nbqa 

讓我們?cè)谖易罱鼊?chuàng)建的notebook上運(yùn)行pylint,這是一個(gè)常用的python linter。為此,您需要在命令行上運(yùn)行以下命令。

  1. $ nbqa pylint dataframe_basics.ipynb 

這給了我一個(gè)標(biāo)準(zhǔn)的pylint輸出,它突出顯示了代碼中的錯(cuò)誤。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

使用jupyter-nbrequirements管理依賴項(xiàng)

 

您使用notebook完成的每個(gè)項(xiàng)目可能需要不同的依賴項(xiàng)集。傳統(tǒng)上,這些是在jupiternotebook外部使用虛擬環(huán)境管理的。

Jupyter nbrerequirements是一個(gè)工具,它可以讓你管理依賴關(guān)系,并創(chuàng)建一個(gè)獨(dú)立的優(yōu)化環(huán)境,所有這些都在notebook中管理。

要開始使用pip安裝庫(kù)并使用下面所示的命令啟用notebook擴(kuò)展名。

  1. $ pip install jupyter-nbrequirements  
  2. $ jupyter nbextension install --user --py jupyter_nbrequirements

您可以通過使用單元魔術(shù)命令或使用將在notebook頂部顯示的UI來在notebook中安裝庫(kù)。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

要使用單元格魔法安裝像pandas這樣的庫(kù),只需在notebook單元格中輸入以下內(nèi)容。

  1. %dep add pandas --version ">=0.24.0"

使用nbval進(jìn)行驗(yàn)證

 

正如本文前面所描述的,notebook最常用于模型的探索性分析和初始開發(fā)。通常,存儲(chǔ)這種類型的分析和最初的項(xiàng)目開發(fā)是非常有用的,既可以用于文檔目的,也可以用于將來可能基于這項(xiàng)工作的發(fā)現(xiàn)進(jìn)行構(gòu)建。

py測(cè)試插件nbval是驗(yàn)證存儲(chǔ)的notebook的有用工具。Nbval將自動(dòng)運(yùn)行notebook中的每個(gè)單元格,并檢查當(dāng)前輸出是否與存儲(chǔ)在上一個(gè)保存版本的.ipynb文件中的輸出匹配。這作為對(duì)底層源代碼中沒有任何更改的檢查,從而驗(yàn)證原始分析或?qū)嶒?yàn)的結(jié)果仍然是可靠的。

要使用此工具,首先通過以下命令進(jìn)行pip安裝。

  1. pip install nbval 

通過運(yùn)行以下命令,可以對(duì)目錄中包含的所有文件執(zhí)行測(cè)試。

  1. py.test --nbval

或者在一個(gè)特定的notebook上運(yùn)行這行代碼。

我在現(xiàn)有的兩本notebook上進(jìn)行測(cè)試。第一個(gè)運(yùn)行沒有錯(cuò)誤,并給出如下輸出。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

下面給出了一個(gè)notebook測(cè)試失敗的例子。

4個(gè)提高Jupiter Notebooks開發(fā)效率的工具

雖然notebook經(jīng)常用于探索性分析和初始模型開發(fā),而不是生產(chǎn)代碼,但仍然應(yīng)該被視為一個(gè)重要的工作存儲(chǔ)。最初的實(shí)驗(yàn)和分析是過去結(jié)果的有用記錄,在以后的日子里應(yīng)該可以回到notebook上建立你的工作。因此,值得探索的工具可以幫助使在notebook中編寫的代碼更加健壯和可復(fù)制。

本文介紹了四種工具,它們可以幫助使notebook中的代碼更好、更可重用。有關(guān)可重復(fù)數(shù)據(jù)科學(xué)代碼的更多提示,請(qǐng)參閱下面我之前的文章。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 纲手被强喷水羞羞漫画 | 国产一级一级一级成人毛片 | 二次元美女脱裤子让男人桶爽 | 成人精品一区二区三区中文字幕 | 亚洲日本中文字幕天天更新 | 亚飞与亚基国语1080p在线观看 | 黄在线观看www免费看 | 欧美一级鲁丝片免费看 | 91短视频社区在线观看 | 天堂网在线.www天堂在线视频 | 午夜伦午夜伦锂电影 | 惩罚美女妲己的尤老师 | 欧美一区二区三区高清不卡tv | 日韩影院在线观看 | 国产亚洲欧美成人久久片 | 免费观看无遮挡www的小视频 | 我把校花黑色蕾丝胸罩脱了 | sese在线观看| 无人区尖叫之夜美女姐姐视频 | 国产va免费精品高清在线 | 成人影院在线观看 | 精品久久久噜噜噜久久7 | 四虎综合九九色九九综合色 | 艾秋果冻麻豆老狼 | 成年美女黄网站色视频大全免费 | 四神集团1涨奶是第几章 | 国产suv精品一区二区四区三区 | 日本丰满大乳乳奶 | 日韩精品一区二区三区中文在线 | 日本妇人成熟免费观看18 | 青苹果乐园影院免费观看完整版 | 国产一区二区三区丶四区 | 欧美成人一区二区三区 | 欧美日韩亚洲一区二区三区在线观看 | 韩国甜性涩爱在线播放 | 天天狠天天透天干天天怕处 | 色综合合久久天天综合绕视看 | 日本色淫 | 跪在老师脚下吃丝袜脚 | 996热在线视频 | 国产精品一区二区三区久久 |