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

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 4個提高Jupiter Notebooks開發效率的工具

4個提高Jupiter Notebooks開發效率的工具

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

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

通常,notebook被認為是促進糟糕的編碼實踐,因為它們很難進行版本控制,經常依賴于以特定順序運行的單元格來返回正確的結果,并且測試和調試可能很棘手。

4個提高Jupiter Notebooks開發效率的工具

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

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

  1. Nbdime 更好的版本控制
  2. nbQA 運行lint
  3. Jupyter-nbrequirements 管理依賴
  4. nbval 進行驗證

Nbdime更好的版本控制

 

使用Github之類的工具對notebook進行版本控制可能很困難。版本控制工具不能很好地呈現差異,因為它們不能理解典型notebook的邏輯結構。這可能會使跟蹤更改和合并代碼變得困難,

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

Nbdime可以通過pip安裝。

  1. pip install nbdime 

這應該會自動安裝和啟用擴展。如果沒有正確安裝,可以使用以下命令手動安裝,添加一個標志來確定為——system(系統范圍)、——user(當前用戶)、——sys-prefix(當前虛擬環境)安裝。

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

一旦一切都安裝好,如果你打開一個jupiternotebook,你現在應該有以下新圖標在你的工具欄。

4個提高Jupiter Notebooks開發效率的工具

我創建了一個notebook來展示nbdime的功能,它在波士頓房價數據集上訓練一個簡單的線性模型。

4個提高Jupiter Notebooks開發效率的工具

新的圖標現在應該在notebook的工具欄上可用,形成nbdime的web視圖功能。這個視圖提供了對notebook所做的更改的豐富的可視化表示。

點擊git按鈕將顯示上次提交和當前保存的notebook版本之間的差異。

單擊看起來像鐘面的圖標將顯示最新檢查點和當前保存的版本之間的差異。

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

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

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

4個提高Jupiter Notebooks開發效率的工具

nbQA進行代碼檢查

 

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

NbQa是一個可以讓你在jupiternotebook上運行任何標準python linter的工具。下面的代碼可以通過這個工具訪問:pylint, black, auto flake, check-ast, doctest, flake8, mypy和yapf。

要安裝,只需運行以下程序。

  1. pip install nbqa 

讓我們在我最近創建的notebook上運行pylint,這是一個常用的python linter。為此,您需要在命令行上運行以下命令。

  1. $ nbqa pylint dataframe_basics.ipynb 

這給了我一個標準的pylint輸出,它突出顯示了代碼中的錯誤。

4個提高Jupiter Notebooks開發效率的工具

使用jupyter-nbrequirements管理依賴項

 

您使用notebook完成的每個項目可能需要不同的依賴項集。傳統上,這些是在jupiternotebook外部使用虛擬環境管理的。

Jupyter nbrerequirements是一個工具,它可以讓你管理依賴關系,并創建一個獨立的優化環境,所有這些都在notebook中管理。

要開始使用pip安裝庫并使用下面所示的命令啟用notebook擴展名。

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

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

4個提高Jupiter Notebooks開發效率的工具

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

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

使用nbval進行驗證

 

正如本文前面所描述的,notebook最常用于模型的探索性分析和初始開發。通常,存儲這種類型的分析和最初的項目開發是非常有用的,既可以用于文檔目的,也可以用于將來可能基于這項工作的發現進行構建。

py測試插件nbval是驗證存儲的notebook的有用工具。Nbval將自動運行notebook中的每個單元格,并檢查當前輸出是否與存儲在上一個保存版本的.ipynb文件中的輸出匹配。這作為對底層源代碼中沒有任何更改的檢查,從而驗證原始分析或實驗的結果仍然是可靠的。

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

  1. pip install nbval 

通過運行以下命令,可以對目錄中包含的所有文件執行測試。

  1. py.test --nbval

或者在一個特定的notebook上運行這行代碼。

我在現有的兩本notebook上進行測試。第一個運行沒有錯誤,并給出如下輸出。

4個提高Jupiter Notebooks開發效率的工具

下面給出了一個notebook測試失敗的例子。

4個提高Jupiter Notebooks開發效率的工具

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

本文介紹了四種工具,它們可以幫助使notebook中的代碼更好、更可重用。有關可重復數據科學代碼的更多提示,請參閱下面我之前的文章。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产在视频线在精品 | 无套暴躁白丝秘书 | 久久这里只有精品国产精品99 | 99热这里只有精品在线观看 | 精品福利视频一区二区三区 | 男人香蕉好大好爽视频 | 男人猛戳女人下部30分钟 | 人体欣赏孕妇季玥图片 | 精品一区二区三区高清免费观看 | 女人把私密部位张开让男人桶 | 久久这里只精品热在线18 | 日日碰日日操 | 国产福利资源网在线观看 | 白丝女仆被啪到深夜漫画 | 久久久久久久久女黄9999 | 边摸边吃奶又黄激烈视频韩国 | 99视频九九精品视频在线观看 | 美女班主任下面好爽好湿好紧 | 黄网久久| 暖暖免费观看高清在线 | 美女全身体光羞羞漫画 | 日韩在线 在线播放 | 日本高清在线看 | 日韩网站免费 | 亚洲欧洲日产国码无码av | 天天拍天天色 | 亚洲男人的天堂在线 | 免费看一级 | 91免费播放 | 日本视频免费看 | 好男人资源在线观看免费的 | 日本精品中文字幕在线播放 | 久草草在线视视频 | 亚洲国产精品一区二区三区久久 | 日本三级免费网站 | 千金肉奴隶免费观看 | 帅老头恋帅老头同性tv | 亚洲国产麻豆 | 国产乱子伦真实china | 天堂资源8中文最新版 | 武侠古典久久亚洲精品 |