Programování

Co je notebook Jupyter? Snadnější analýza dat

V určitém okamžiku musíme všichni ukázat svou práci. Většina programovacích prací je sdílena buď jako nezpracovaný zdrojový kód, nebo jako kompilovaný spustitelný soubor. Zdrojový kód poskytuje úplné informace, ale způsobem, který je více „sdělován“ než „zobrazen“. Spustitelný soubor nám ukazuje, co software dělá, ale i když je dodáván se zdrojovým kódem, může být obtížné přesně pochopit, jak funguje.

Představte si, že jste schopni zobrazit kód a spustit jej ve stejném uživatelském rozhraní, abyste mohli provádět změny v kódu a prohlížet výsledky těchto změn okamžitě, v reálném čase? To je přesně to, co Jupyter Notebook nabízí.

Notebook Jupyter byl vytvořen, aby usnadnil ukázku programátorské práce a umožnil ostatním připojit se. Notebook Jupyter vám umožňuje kombinovat kód, komentáře, multimédia a vizualizace v interaktivním dokumentu - přirozeně se nazývá notebook - který lze sdílet , znovu použito a přepracováno.

A protože Jupyter Notebook běží přes webový prohlížeč, mohl by být samotný notebook hostován na místním počítači nebo na vzdáleném serveru.

Výhody notebooku Jupyter

Původně vyvinut pro aplikace datových věd napsané v Pythonu, R a Julii, Jupyter Notebook je užitečný všemi způsoby pro všechny druhy projektů:

  • Vizualizace dat. Většina lidí má své první vystavení Jupyter Notebooku prostřednictvím vizualizace dat, sdíleného poznámkového bloku, který obsahuje vykreslení některé datové sady jako grafiku. Notebook Jupyter vám umožňuje vytvářet vizualizace, ale také je sdílet a umožňovat interaktivní změny sdíleného kódu a datové sady.
  • Sdílení kódu. Cloudové služby jako GitHub a Pastebin poskytují způsoby sdílení kódu, ale jsou převážně neinteraktivní. S notebookem Jupyter můžete zobrazit kód, spustit jej a zobrazit výsledky přímo ve webovém prohlížeči.
  • Živé interakce s kódem. Kód Jupyter Notebook není statický; lze jej upravovat a opakovaně spouštět v reálném čase se zpětnou vazbou poskytovanou přímo v prohlížeči. Notebooky mohou také vkládat uživatelské ovládací prvky (např. Posuvníky nebo pole pro zadávání textu), které lze použít jako vstupní zdroje pro kód.
  • Dokumentace ukázek kódu. Pokud máte kus kódu a chcete vysvětlit řádek po řádku, jak to funguje, se živou zpětnou vazbou po celou dobu, můžete jej vložit do poznámkového bloku Jupyter. Nejlepší ze všeho je, že kód zůstane plně funkční - můžete přidat interaktivitu spolu s vysvětlením, zobrazením a vyprávěním současně.

Součásti notebooku Jupyter

Notebooky Jupyter mohou obsahovat několik druhů ingrediencí, z nichž každá je rozdělena do samostatných bloků:

  • Text a HTML. Prostý text nebo text anotovaný v syntaxi Markdown pro generování HTML lze do dokumentu vložit kdykoli. Styl CSS lze také zahrnout vložený nebo přidat do šablony použité ke generování poznámkového bloku.
  • Kód a výstup. Kód v poznámkových blocích Jupyter Notebook je obvykle kód v Pythonu, i když ve svém prostředí Jupyter můžete přidat podporu pro jiné jazyky, jako je R nebo Julia. Výsledky spuštěného kódu se objeví bezprostředně po blocích kódu a bloky kódu lze spustit a znovu spustit v libovolném pořadí, jak se vám líbí, tak často, jak se vám líbí.
  • Vizualizace.Grafiku a grafy lze generovat z kódu pomocí modulů jako Matplotlib, Plotly nebo Bokeh. Stejně jako výstup se tyto vizualizace zobrazují vložené vedle kódu, který je generuje. Kód však lze také nakonfigurovat tak, aby je v případě potřeby zapisoval do externích souborů.
  • Multimédia.Protože Jupyter Notebook je postaven na webové technologii, může zobrazovat všechny typy multimédií podporovaných na webové stránce. Můžete je zahrnout do poznámkového bloku jako prvky HTML, nebo je můžete vygenerovat programově pomocí IPython.display modul.
  • Data. Údaje lze poskytnout v samostatném souboru vedle souboru .ipynb soubor, který představuje notebook Jupyter Notebook, nebo jej lze importovat programově - například zahrnutím kódu do notebooku pro stažení dat z veřejného internetového úložiště nebo pro přístup k němu přes připojení k databázi.

Případy použití notebooku Jupyter

Nejběžnějšími případy použití pro Jupyter Notebook jsou věda o datech, matematika a další výzkumné projekty, které zahrnují vizualizace dat nebo vzorců. Kromě toho však existuje spousta dalších případů použití:

  • Sdílení vizualizace, s interaktivitou nebo bez ní. Lidé často sdílejí výsledky vizualizace dat jako statický obrázek, ale to je užitečné jen do určité míry. Sdílením notebooku Jupyter umožníte svému cílovému publiku se ponořit a hrát si. Mohou interaktivně důkladně porozumět datům.
  • Dokumentace procesu s kódem. Mnoho programátorů, kteří blogují o svých programátorských zkušenostech, píše své příspěvky do poznámkového bloku Jupyter. Jiní si mohou stáhnout svůj poznámkový blok a znovu vytvořit cvičení.
  • Živá dokumentace pro knihovnu nebo modul. Většina dokumentace pro moduly Pythonu je statická; notebook Jupyter lze použít jako interaktivní karanténu pro učení, jak modul funguje. Libovolný modul Pythonu, který dobře funguje v rozhraní notebooku (v podstatě vše, do čeho se zapisuje) stdout jako součást svého chování) je pro to dobrým kandidátem.
  • Sdílení kódu a dat obecně. Vše, co musíte udělat, abyste mohli sdílet notebook Jupyter a jeho přidružené datové soubory, je zabalit do archivu.

JupyterLab

Uživatelské rozhraní nové generace pro notebook Jupyter s názvem JupyterLab je nyní k dispozici a je považováno za připravené pro produkční použití.

Jak je vysvětleno v příspěvku na blogu, který oznamuje obecnou dostupnost, JupyterLab je tvárnější než běžný notebook Jupyter, který umožňuje uživatelům přetahovat buňky uvnitř a mezi notebooky a uspořádat pracovní prostor do samostatných karet a podsekcí. Kód lze spustit přímo z textových souborů i ze souborů Jupyter Notebook a mnoho běžných formátů souborů pro kód i data lze vykreslit pomocí živých náhledů.

JupyterLab lze také přizpůsobit pomocí rozšíření, které přidávají podporu pro nové formáty souborů, obohacují rozhraní nebo poskytují řadu dalších doplňkových funkcí, což umožňuje mnohem širší škálu aplikací notebooků než Jupyter Notebook. Dlouhodobým plánem je nahradit stávající rozhraní notebooku Jupyter notebookem JupyterLab, ale teprve poté, co se JupyterLab osvědčí jako dostatečně stabilní a spolehlivý.

Omezení notebooku Jupyter

Jak silný a užitečný může být notebook Jupyter, má určitá omezení, která je třeba vzít v úvahu.

  • Notebooky nejsou samostatné. Toto je největší nevýhoda používání Jupyter Notebook: Notebooky vyžadují běh Jupyter, spolu se všemi knihovnami, které plánujete používat. Existuje několik strategií pro vytváření samostatných notebooků Jupyter, ale žádná z nich není oficiálně podporována. Nejlepší je distribuovat notebooky lidem, kteří již mají infrastrukturu pro jejich provoz, nebo nastavení nevadí (například prostřednictvím Anacondy).
  • Stav relace nelze snadno uložit. Stav libovolného kódu spuštěného v notebooku Jupyter nelze zachovat a obnovit pomocí výchozí sady nástrojů Jupyter Notebook. Pokaždé, když notebook načtete, budete muset v něm znovu spustit kód, abyste obnovili jeho stav.
  • Žádné interaktivní ladění nebo jiné funkce IDE. Jupyter Notebook není plnohodnotné vývojové prostředí pro Python. Mnoho funkcí, které byste očekávali v IDE - např. Interaktivní ladění, dokončení kódu a správa modulů - tam není k dispozici.