Proč já nepoužívám notebook Jupyter a vy byste také neměli

fpfcorp 12/10/2021 1852

– Joel Grus

– Iskander Yusof

Poznámkové bloky Jupyter jsou v podstatě prvním nástrojem, který datový vědec vytáhne z police, když se blíží k novému problému. A s dobrým rozumem. Neexistuje nic jako okamžitá zpětná vazba, kterou získáte, když stisknete Shift-Enter a váš kód je vyhodnocen. Navíc můžete vidět své grafy přímo vedle vašeho kódu! Co nemilovat?

No, docela hodně.

Jsem datový vědec, ale notebooky Jupyter používám velmi zřídka. Zde je důvod a proč si myslím, že byste je také neměli používat, pokud chcete být tím nejefektivnějším datovým vědcem, jakým můžete být.

Podporují znečišťování globálního jmenného prostoru

Nejlepší vlastností notebooků je, že poskytují okamžitou zpětnou vazbu: stačí stisknout Shift-Enter.

To je také jejich nejhorší vlastnost.

Abych získal okamžitou zpětnou vazbu, zjistil jsem, že místo psaní funkcí píšu kód v globálním jmenném prostoru. To je obvykle

považováno za špatný postup

vývoj v Pythonu. Důvodem je to, že je velmi těžké vysvětlit účinek běhu sekvence buněk. Všichni upravují globální jmenný prostor, což znamená, že váš notebook je skutečně strašně velký

státní automat

.

To také vede k mým dalším dvěma námitkám...

Odrazují od efektivního opětovného použití kódu

Nejlepší způsob, jak znovu použít kód v Pythonu, je prostřednictvím funkcí a tříd. V noteboocích je pokušení znovu použít kód

buňky

místo toho. Protože používáte globální jmenný prostor, spoléháte na to, že se oncell spouštějí v určitém pořadí. Abyste mohli znovu použít incells kódu, museli byste nastavit nějakou globální proměnnou a poté spustit pravou buňku. Sledování toho, co je třeba spustit a v jakém pořadí se pak stává problémem a také vede k...

Poškozují reprodukovatelnost

Pokud notebook vždy spouštíte v lineárním pořadí od začátku do konce, pak by reprodukovatelnost neměla být problémem. Někdo jiný může vzít váš notebook, spustit jej v daném pořadí a získat stejné výsledky.

To však (viz výše) znamená, že obvykle nebudete mít možnost znovu použít skvělý kód. Poněkud to také maří jednu z výhod používání anotebooku, kterou je, že jej můžete spouštět v libovolném pořadí.

Pokud jej nespouštíte vždy lineárním způsobem, je pravděpodobné, že ostatní lidé, kteří váš notebook používají, jej také budou spouštět v jiném pořadí a je obtížné zajistit, že budou mít stejné (nebo alespoň účinné) Výsledek.

Zajímá vás reprodukovatelnost, že? Jste údaj

vědec

.

Nehrají si dobře s ovládáním zdroje

Pokud jste profesionální datový vědec, pravděpodobně pracujete v týmu. To znamená, že musíte spolupracovat. A spolupráce s notebooky je... nesmysl. Obecně to znamená uložení notebooku a jeho odeslání někomu.

Samozřejmě můžete notebooky zapojit do ovládání zdroje. Dokud ji nikdo neupravuje ve stejnou dobu, v tom případě hodně štěstí při pokusu o sloučení s jejich změnami.

A co testování?

Neexistuje nic jako pár dobře napsaných jednotkových testů, které vám pomohou najít chyby ve vašem kódu. A mnohokrát jsem strávil deset minut čekáním na spuštění experimentu, jen abych zjistil, že se v polovině zlomil. Kdybych měl rychlý test, mohl bych běžet jako první, nemusel bych čekat.

Bohužel je nejen obtížné, ale téměř nemožné napsat jednotkové testy pro buňky notebooku. Opět, pokud skutečně píšete funkce do poznámkových bloků, můžete to udělat, ale pak ztratíte vlastnost niceinteractivity.

Nejsou to PyCharm

Pokud byste tedy neměli používat notebooky, co

měl by

používáte?

Nenašel jsem nic lepšího než PyCharm. Bez námahy převádí mé myšlenky do kódu. Dobře, možná to není tak snadné, ale má některé úžasné funkce, které mi velmi chybí, kdykoli jsem nucen používat notebook:

Správné vyplnění kódu (ne odpadky, které získáte, když stisknete klávesu tabin v poznámkovém bloku).

Automatické přejmenování proměnných

Vyhledejte funkci nebo třídu v celé kódové základně

Refaktor pro extrahování metody nebo funkce

...kromě mnoha jiných věcí.

Ale co radost ze stisknutí Shift-Enter? Potřebuji svůj dopaminový zásah!

Pokud opravdu potřebujete interaktivní notebooky, můžete si zaplatit za profesionální edici, která má „vědecký režim“. To zahrnuje možnost prohlížet grafy matplotlib a datové rámce pandas. Pokud opravdu chcete, můžete dokonce spouštět notebooky z PyCharm.

Ale ty nechceš, že?

(Chcete prodiskutovat své vlastní konkrétní problémy s daty? Kniha a

bezplatná konzultace

s námi – jsme tu, abychom vám pomohli!)

Líbí se tomuto článku

?

Pak si nechte to nejlepší z DataPastry doručit přímo do vaší schránky. Obdržíte:

Naše bezplatná e-kniha,

Manažer's Guide to Data Science

Podrobné rady, jak nastavit datový tým, infrastrukturu a další

Nástroje a materiály, které vám pomohou stanovit hodnotu vašich dat a najmout správné datové profesionály

Přihlaste se k odběru

Nejnovější: Proč je Jupyter Notebook tak populární mezi datovými vědci

Další: Jádro notebooku Jupyter nelze připojit