Programmering

Hvad er Jupyter Notebook? Dataanalyse lettere

På et tidspunkt er vi alle nødt til at vise vores arbejde. Det meste programmeringsarbejde deles enten som rå kildekode eller som en kompileret eksekverbar. Kildekoden giver komplette oplysninger, men på en måde, der er mere ”fortæller” end “show”. Den eksekverbare viser os, hvad softwaren gør, men selv når det sendes med kildekoden, kan det være svært at forstå præcis, hvordan det fungerer.

Forestil dig at kunne se koden og udføre den i samme brugergrænseflade, så du kunne foretage ændringer i koden og se resultaterne af disse ændringer med det samme i realtid? Det er netop, hvad Jupyter Notebook tilbyder.

Jupyter Notebook blev oprettet for at gøre det lettere at vise ens programmeringsarbejde og lade andre deltage. Jupyter Notebook giver dig mulighed for at kombinere kode, kommentarer, multimedie og visualiseringer i et interaktivt dokument - kaldet en notesbog, naturligvis - der kan deles , genbrugt og genarbejdet.

Og fordi Jupyter Notebook kører via en webbrowser, kan den bærbare computer være hostet på din lokale maskine eller på en ekstern server.

Fordele ved Jupyter Notebook

Oprindeligt udviklet til datavidenskabelige applikationer skrevet i Python, R og Julia, Jupyter Notebook er nyttig på alle mulige måder til alle slags projekter:

  • Datavisualiseringer. De fleste mennesker har deres første eksponering for Jupyter Notebook ved hjælp af en datavisualisering, en delt notesbog, der inkluderer gengivelse af nogle datasæt som grafik. Jupyter Notebook lader dig forfattervisualiseringer, men også dele dem og tillade interaktive ændringer i den delte kode og datasættet.
  • Kodedeling. Cloudtjenester som GitHub og Pastebin giver måder at dele kode på, men de er stort set ikke-interaktive. Med en Jupyter Notebook kan du se koden, udføre den og vise resultaterne direkte i din webbrowser.
  • Live interaktioner med kode. Jupyter Notebook-kode er ikke statisk; det kan redigeres og genkøres trinvist i realtid med feedback leveret direkte i browseren. Notebooks kan også integrere brugerkontroller (fx skyderne eller tekstinputfelter), der kan bruges som inputkilder til kode.
  • Dokumentation af kodeeksempler. Hvis du har et stykke kode, og du vil forklare linje for linje, hvordan det fungerer, med live feedback hele vejen, kan du integrere det i en Jupyter Notebook. Bedst af alt er, at koden forbliver fuldt funktionel - du kan tilføje interaktivitet sammen med forklaringen, der vises og fortæller på samme tid.

Jupyter Notebook-komponenter

Jupyter Notebooks kan indeholde flere slags ingredienser, der hver er organiseret i diskrete blokke:

  • Tekst og HTML. Almindelig tekst eller tekst, der er kommenteret i Markdown-syntaksen for at generere HTML, kan indsættes i dokumentet til enhver tid. CSS-styling kan også inkluderes integreret eller føjes til den skabelon, der bruges til at generere den bærbare computer.
  • Kode og output. Koden i Jupyter Notebook-notesbøger er typisk Python-kode, selvom du muligvis tilføjer support i dit Jupyter-miljø til andre sprog som R eller Julia. Resultaterne af den udførte kode vises umiddelbart efter kodeblokkene, og kodeblokkene kan udføres og genudføres i den rækkefølge, du vil, så ofte du vil.
  • Visualiseringer.Grafik og diagrammer kan genereres fra kode ved hjælp af moduler som Matplotlib, Plotly eller Bokeh. Ligesom output vises disse visualiseringer integreret ved siden af ​​den kode, der genererer dem. Dog kan kode også konfigureres til at skrive dem til eksterne filer, hvis det er nødvendigt.
  • Multimedia.Da Jupyter Notebook er bygget på webteknologi, kan den vise alle typer multimedier, der understøttes på en webside. Du kan inkludere dem i en notesbog som HTML-elementer, eller du kan generere dem programmatisk ved hjælp af IPython.display modul.
  • Data. Data kan leveres i en separat fil sammen med .ipynb fil, der udgør en Jupyter Notebook-notesbog, eller den kan importeres programmatisk - for eksempel ved at inkludere kode i notesbogen for at downloade dataene fra et offentligt internetopbevaringssted eller for at få adgang til dem via en databaseforbindelse.

Jupyter Notebook brugssager

De mest almindelige brugssager til Jupyter Notebook er datalogi, matematik og andre forskningsprojekter, der involverer visualisering af data eller formler. Bortset fra disse er der dog masser af andre brugssager:

  • Deling af en visualisering med eller uden interaktivitet. Folk deler ofte resultaterne af en datavisualisering som et statisk billede, men det er kun nyttigt op til et punkt. Ved at dele en Jupyter-notesbog tillader du din målgruppe at dykke ind og lege rundt. De kan få en grundig forståelse af dataene interaktivt.
  • Dokumentation af en proces med kode. Mange programmører, der blogger om deres programmeringsoplevelser, skriver deres indlæg i en Jupyter-notesbog. Andre kan downloade deres notesbog og genskabe øvelsen.
  • Live dokumentation til et bibliotek eller modul. Mest dokumentation for Python-moduler er statisk; en Jupyter-notesbog kan bruges som en interaktiv sandkasse til at lære, hvordan et modul fungerer. Ethvert Python-modul, der kører godt i en notebook-interface (i det væsentlige alt, hvad der skriver til stdout som en del af dets opførsel) er en god kandidat til dette.
  • Deling af kode og data generelt. Alt hvad du skal gøre for at dele en Jupyter-notesbog og dens tilknyttede datafiler er at pakke den ind i et arkiv.

JupyterLab

En næste generations brugergrænseflade til Jupyter Notebook, kaldet JupyterLab, er nu tilgængelig og betragtes som klar til produktionsbrug.

Som forklaret i blogindlægget, der annoncerer generel tilgængelighed, er JupyterLab mere smidig end en konventionel Jupyter Notebook, hvilket giver brugerne mulighed for at trække og slippe celler i og mellem notesbøger og arrangere arbejdsområdet i separate faner og underafsnit. Kode kan køre direkte fra tekstfiler såvel som Jupyter Notebook-filer, og mange almindelige filformater til både kode og data kan gengives med live previews.

JupyterLab kan også tilpasses med udvidelser for at tilføje understøttelse af nye filformater, for at berige grænsefladen eller for at give et hvilket som helst antal andre yderligere funktioner, hvilket muliggør en meget bredere vifte af notebook-applikationer end Jupyter Notebook. Den langsigtede plan er at erstatte den nuværende Jupyter Notebook-grænseflade med JupyterLab, men først efter at JupyterLab har vist sig at være tilstrækkelig stabil og pålidelig.

Jupyter Notebook-begrænsninger

Så kraftfuld og nyttig som Jupyter Notebook kan være, har den nogle begrænsninger, der skal tages i betragtning.

  • Notebooks er ikke selvstændige. Dette er den største enkelt ulempe ved at bruge Jupyter Notebook: Notebooks kræver Jupyter runtime sammen med alle biblioteker, du planlægger at bruge. Der findes et par strategier til oprettelse af selvstændige Jupyter Notebooks, men ingen af ​​dem understøttes officielt. Det er bedst for dig at distribuere notesbøger til folk, der allerede har infrastruktur til at køre dem, eller du har ikke noget imod opsætningen (f.eks. Ved hjælp af Anaconda).
  • Sessionstilstand kan ikke let gemmes. Tilstanden for enhver kode, der kører i en Jupyter-notesbog, kan ikke bevares og gendannes med Jupyter Notebooks standardværktøjssæt. Hver gang du indlæser den bærbare computer, skal du køre koden igen for at gendanne dens tilstand.
  • Ingen interaktiv fejlretning eller andre IDE-funktioner. Jupyter Notebook er ikke et fuldt udviklet miljø for Python. Mange af de funktioner, du forventer at finde i en IDE - f.eks. Interaktiv fejlretning, kodefærdiggørelse og moduladministration - er ikke tilgængelige der.
$config[zx-auto] not found$config[zx-overlay] not found