Programmering

Hva er Jupyter Notebook? Dataanalyse gjort enklere

På et tidspunkt må vi alle vise vårt arbeid. Det meste programmeringsarbeidet deles enten som rå kildekode eller som en kompilert kjørbar. Kildekoden gir fullstendig informasjon, men på en måte som er mer “tell” enn “show”. Den kjørbare filen viser oss hva programvaren gjør, men selv når den sendes med kildekoden, kan det være vanskelig å forstå hvordan den fungerer.

Tenk deg å kunne se koden og utføre den i samme brukergrensesnitt, slik at du kan gjøre endringer i koden og se resultatene av disse endringene umiddelbart, i sanntid? Det er akkurat det Jupyter Notebook tilbyr.

Jupyter Notebook ble opprettet for å gjøre det lettere å vise programmeringsarbeidet sitt, og for å la andre delta. Jupyter Notebook lar deg kombinere kode, kommentarer, multimedia og visualiseringer i et interaktivt dokument - kalt en notatbok, naturlig - som kan deles , gjenbrukt og omarbeidet.

Og fordi Jupyter Notebook kjører via en nettleser, kan selve notatboken være vert på din lokale maskin eller på en ekstern server.

Fordeler med Jupyter Notebook

Jupyter Notebook ble opprinnelig utviklet for datavitenskapelige applikasjoner skrevet i Python, R og Julia, og er nyttig på alle slags måter for alle slags prosjekter:

  • Datavisualiseringer. De fleste har sin første eksponering for Jupyter Notebook ved hjelp av en datavisualisering, en delt notatbok som inkluderer gjengivelse av noe datasett som grafikk. Jupyter Notebook lar deg forfattervisualiseringer, men også dele dem og tillate interaktive endringer i den delte koden og datasettet.
  • Kodedeling. Skytjenester som GitHub og Pastebin gir måter å dele kode på, men de er stort sett ikke-interaktive. Med en Jupyter Notebook kan du se koden, utføre den og vise resultatene direkte i nettleseren din.
  • Live interaksjoner med kode. Jupyter Notatbokskode er ikke statisk; den kan redigeres og kjøres trinnvis på nytt i sanntid, med tilbakemelding gitt direkte i nettleseren. Notatbøker kan også legge inn brukerkontroller (f.eks. Glidebrytere eller tekstinntastingsfelt) som kan brukes som inndatakilder for kode.
  • Dokumentere kodeeksempler. Hvis du har et stykke kode og du vil forklare linje for linje hvordan det fungerer, med live tilbakemeldinger underveis, kan du legge det inn i en Jupyter Notebook. Best av alt, koden vil forbli fullt funksjonell - du kan legge til interaktivitet sammen med forklaringen, som vises og forteller samtidig.

Jupyter bærbare komponenter

Jupyter Notatbøker kan inneholde flere typer ingredienser, hver organisert i diskrete blokker:

  • Tekst og HTML. Vanlig tekst, eller tekst som er kommentert i Markdown-syntaksen for å generere HTML, kan settes inn i dokumentet når som helst. CSS-styling kan også inkluderes eller legges til i malen som brukes til å generere notatboken.
  • Kode og utdata. Koden i Jupyter Notebook-notatbøker er vanligvis Python-kode, selv om du kan legge til støtte i Jupyter-miljøet for andre språk som R eller Julia. Resultatene av utført kode vises umiddelbart etter kodeblokkene, og kodeblokkene kan kjøres og kjøres på nytt i hvilken rekkefølge du vil, så ofte du vil.
  • Visualiseringer.Grafikk og diagrammer kan genereres fra kode ved hjelp av moduler som Matplotlib, Plotly eller Bokeh. Som output vises disse visualiseringene integrert ved siden av koden som genererer dem. Imidlertid kan kode også konfigureres til å skrive dem ut til eksterne filer om nødvendig.
  • Multimedia.Fordi Jupyter Notebook er bygget på webteknologi, kan den vise alle typer multimedia som støttes på en webside. Du kan inkludere dem i en notatbok som HTML-elementer, eller du kan generere dem programmatisk ved hjelp av IPython.display modul.
  • Data. Data kan gis i en egen fil ved siden av .ipynb fil som utgjør en Jupyter Notebook-notatbok, eller den kan importeres programmatisk — for eksempel ved å inkludere kode i notatboken for å laste ned dataene fra et offentlig Internett-arkiv eller for å få tilgang til dem via en databaseforbindelse.

Jupyter Notatbokbruk

De vanligste brukssakene for Jupyter Notebook er datavitenskap, matematikk og andre forskningsprosjekter som involverer visualisering av data eller formler. Bortsett fra disse, er det imidlertid mange andre bruksområder:

  • Dele en visualisering, med eller uten interaktivitet. Folk deler ofte resultatene av en datavisualisering som et statisk bilde, men det er bare nyttig opp til et punkt. Ved å dele en Jupyter-notatbok, tillater du målgruppen å dykke inn og leke. De kan få en grundig forståelse av dataene, interaktivt.
  • Dokumentere en prosess med kode. Mange programmerere som blogger om programmeringsopplevelsene, skriver opp innleggene sine i en Jupyter-notatbok. Andre kan laste ned notatboken og gjenskape øvelsen.
  • Direkte dokumentasjon for et bibliotek eller en modul. Mest dokumentasjon for Python-moduler er statisk; en Jupyter-notatbok kan brukes som en interaktiv sandkasse for å lære hvordan en modul fungerer. Enhver Python-modul som kjører godt i et bærbart grensesnitt (i hovedsak alt som skriver til stdout som en del av oppførselen) er en god kandidat for dette.
  • Deling av kode og data generelt. Alt du trenger å gjøre for å dele en Jupyter-notatbok og tilhørende datafiler er å pakke den inn i et arkiv.

JupyterLab

Et neste generasjons brukergrensesnitt for Jupyter Notebook, kalt JupyterLab, er nå tilgjengelig og anses klart for bruk i produksjonen.

Som forklart i blogginnlegget som kunngjør generell tilgjengelighet, er JupyterLab mer smidig enn en konvensjonell Jupyter Notebook, slik at brukerne kan dra og slippe celler i og mellom notatbøker og å ordne arbeidsområdet i separate faner og underavsnitt. Koden kan kjøres direkte fra tekstfiler så vel som Jupyter Notebook-filer, og mange vanlige filformater for både kode og data kan gjengis med live forhåndsvisning.

JupyterLab kan også tilpasses med utvidelser for å legge til støtte for nye filformater, for å berike grensesnittet eller for å gi et hvilket som helst antall andre tilleggsfunksjoner, noe som muliggjør et mye bredere utvalg av bærbare applikasjoner enn Jupyter Notebook. Den langsiktige planen er å erstatte det nåværende Jupyter Notebook-grensesnittet med JupyterLab, men først etter at JupyterLab har vist seg tilstrekkelig stabilt og pålitelig.

Jupyter Notebook-begrensninger

Så kraftig og nyttig som Jupyter Notebook kan være, har den noen begrensninger som må tas i betraktning.

  • Bærbare datamaskiner er ikke selvstendige. Dette er den største ulempen ved å bruke Jupyter Notebook: Notatbøker krever Jupyter-kjøretiden, sammen med alle biblioteker du planlegger å bruke. Noen få strategier eksisterer for å lage selvstendige Jupyter Notatbøker, men ingen av dem støttes offisielt. Det er best å distribuere notatbøker til folk som allerede har infrastruktur for å kjøre dem, eller ikke har noe imot oppsettet (for eksempel ved hjelp av Anaconda).
  • Sesjonstilstand kan ikke lagres enkelt. Tilstanden til hvilken som helst kode som kjører i en Jupyter-notatbok, kan ikke bevares og gjenopprettes med Jupyter Notebooks standardverktøysett. Hver gang du laster inn den bærbare datamaskinen, må du kjøre koden på nytt for å gjenopprette tilstanden.
  • Ingen interaktiv feilsøking eller andre IDE-funksjoner. Jupyter Notebook er ikke et fullstendig utviklingsmiljø for Python. Mange av funksjonene du forventer å finne i en IDE - for eksempel interaktiv feilsøking, fullføring av kode og moduladministrasjon - er ikke tilgjengelig der.
$config[zx-auto] not found$config[zx-overlay] not found