Προγραμματισμός

Τι είναι το Jupyter Notebook; Η ανάλυση δεδομένων έγινε πιο εύκολη

Σε κάποιο σημείο, όλοι πρέπει να δείξουμε τη δουλειά μας. Οι περισσότερες εργασίες προγραμματισμού μοιράζονται είτε ως αρχικό πηγαίο κώδικα είτε ως μεταγλωττισμένο εκτελέσιμο. Ο πηγαίος κώδικας παρέχει πλήρεις πληροφορίες, αλλά με τρόπο που είναι πιο «πειρά» παρά «εμφάνιση». Το εκτελέσιμο πρόγραμμα μας δείχνει τι κάνει το λογισμικό, αλλά ακόμη και όταν αποστέλλεται με τον πηγαίο κώδικα, μπορεί να είναι δύσκολο να κατανοήσουμε ακριβώς πώς λειτουργεί.

Φανταστείτε να μπορείτε να προβάλετε τον κώδικα και να τον εκτελέσετε στην ίδια διεπαφή χρήστη, ώστε να μπορείτε να κάνετε αλλαγές στον κώδικα και να δείτε τα αποτελέσματα αυτών των αλλαγών άμεσα, σε πραγματικό χρόνο; Αυτό ακριβώς προσφέρει το Jupyter Notebook.

Το Jupyter Notebook δημιουργήθηκε για να διευκολύνει την εμφάνιση της εργασίας προγραμματισμού κάποιου και για να επιτρέψει σε άλλους να συμμετάσχουν. Το Jupyter Notebook σάς επιτρέπει να συνδυάσετε κώδικα, σχόλια, πολυμέσα και οπτικοποιήσεις σε ένα διαδραστικό έγγραφο - που ονομάζεται φυσικά σημειωματάριο - που μπορεί να κοινοποιηθεί , επαναχρησιμοποιήθηκε και επανεπεξεργάστηκε.

Και επειδή το Jupyter Notebook τρέχει μέσω ενός προγράμματος περιήγησης ιστού, το ίδιο το σημειωματάριο θα μπορούσε να φιλοξενείται στον τοπικό υπολογιστή σας ή σε έναν απομακρυσμένο διακομιστή.

Οφέλη Jupyter Notebook

Αρχικά αναπτύχθηκε για εφαρμογές επιστήμης δεδομένων γραμμένες σε Python, R και Julia, το Jupyter Notebook είναι χρήσιμο με κάθε είδους τρόπους για όλα τα είδη έργων:

  • Οπτικοποιήσεις δεδομένων. Οι περισσότεροι άνθρωποι έχουν την πρώτη τους έκθεση στο Jupyter Notebook μέσω οπτικοποίησης δεδομένων, ενός κοινόχρηστου σημειωματάριου που περιλαμβάνει μια απόδοση ορισμένων συνόλων δεδομένων ως γραφικό. Το Jupyter Notebook σας επιτρέπει να δημιουργείτε οπτικοποιήσεις, αλλά και να τις μοιράζεστε και να επιτρέπετε διαδραστικές αλλαγές στον κοινόχρηστο κώδικα και το σύνολο δεδομένων.
  • Κοινή χρήση κώδικα. Οι υπηρεσίες cloud όπως το GitHub και το Pastebin παρέχουν τρόπους κοινής χρήσης κώδικα, αλλά σε μεγάλο βαθμό δεν είναι διαδραστικές. Με ένα σημειωματάριο Jupyter, μπορείτε να προβάλετε κώδικα, να τον εκτελέσετε και να εμφανίσετε τα αποτελέσματα απευθείας στο πρόγραμμα περιήγησης ιστού.
  • Ζωντανές αλληλεπιδράσεις με κώδικα. Ο κωδικός Notebook Jupyter δεν είναι στατικός. μπορεί να επεξεργαστεί και να εκτελεστεί ξανά σταδιακά σε πραγματικό χρόνο, με σχόλια που παρέχονται απευθείας στο πρόγραμμα περιήγησης. Τα σημειωματάρια μπορούν επίσης να ενσωματώσουν στοιχεία ελέγχου χρήστη (π.χ. ρυθμιστικά ή πεδία εισαγωγής κειμένου) που μπορούν να χρησιμοποιηθούν ως πηγές εισαγωγής κώδικα.
  • Τεκμηρίωση δειγμάτων κώδικα. Εάν έχετε ένα κομμάτι κώδικα και θέλετε να εξηγήσετε κάθε γραμμή πώς λειτουργεί, με ζωντανή ανατροφοδότηση καθ 'όλη τη διάρκεια, θα μπορούσατε να το ενσωματώσετε σε ένα Jupyter Notebook. Το καλύτερο από όλα, ο κώδικας θα παραμείνει πλήρως λειτουργικός - μπορείτε να προσθέσετε διαδραστικότητα μαζί με την εξήγηση, να εμφανίζεται και να λέει ταυτόχρονα.

Στοιχεία Notebook Jupyter

Τα Jupyter Notebooks μπορούν να περιλαμβάνουν διάφορα είδη συστατικών, το καθένα οργανωμένο σε διακριτά μπλοκ:

  • Κείμενο και HTML. Απλό κείμενο ή κείμενο που έχει επισημανθεί στη σύνταξη Markdown για τη δημιουργία HTML, μπορεί να εισαχθεί στο έγγραφο ανά πάσα στιγμή. Το στυλ CSS μπορεί επίσης να συμπεριληφθεί inline ή να προστεθεί στο πρότυπο που χρησιμοποιείται για τη δημιουργία του φορητού υπολογιστή.
  • Κωδικός και έξοδος. Ο κωδικός στα σημειωματάρια Jupyter Notebook είναι συνήθως κωδικός Python, παρόλο που μπορείτε να προσθέσετε υποστήριξη στο περιβάλλον Jupyter για άλλες γλώσσες όπως η R ή η Julia. Τα αποτελέσματα του εκτελεσμένου κώδικα εμφανίζονται αμέσως μετά τα μπλοκ κώδικα και τα μπλοκ κώδικα μπορούν να εκτελεστούν και να εκτελεστούν ξανά με οποιαδήποτε σειρά που θέλετε, όσο συχνά θέλετε.
  • Οπτικοποιήσεις.Τα γραφικά και τα γραφήματα μπορούν να δημιουργηθούν από κώδικα, μέσω ενοτήτων όπως το Matplotlib, το Plotly ή το Bokeh. Όπως και η έξοδος, αυτές οι απεικονίσεις εμφανίζονται ενσωματωμένες δίπλα στον κώδικα που τις δημιουργεί. Ωστόσο, ο κώδικας μπορεί επίσης να διαμορφωθεί ώστε να τους γράφει σε εξωτερικά αρχεία, εάν χρειάζεται.
  • ΠΟΛΥΜΕΣΑ.Επειδή το Jupyter Notebook είναι βασισμένο σε τεχνολογία web, μπορεί να εμφανίσει όλους τους τύπους πολυμέσων που υποστηρίζονται σε μια ιστοσελίδα. Μπορείτε να τα συμπεριλάβετε σε ένα σημειωματάριο ως στοιχεία HTML ή μπορείτε να τα δημιουργήσετε μέσω προγραμματισμού μέσω του IPython.display μονάδα μέτρησης.
  • Δεδομένα. Τα δεδομένα μπορούν να παρέχονται σε ένα ξεχωριστό αρχείο παράλληλα με το .ipynb αρχείο που αποτελεί σημειωματάριο Jupyter Notebook ή μπορεί να εισαχθεί μέσω προγραμματισμού - για παράδειγμα, συμπεριλαμβάνοντας κώδικα στο σημειωματάριο για λήψη των δεδομένων από δημόσιο αποθετήριο Διαδικτύου ή για πρόσβαση σε αυτό μέσω σύνδεσης βάσης δεδομένων.

Θήκες χρήσης Jupyter Notebook

Οι πιο συνηθισμένες περιπτώσεις χρήσης για το Jupyter Notebook είναι η επιστήμη δεδομένων, τα μαθηματικά και άλλα ερευνητικά έργα που περιλαμβάνουν οπτικοποίηση δεδομένων ή τύπων. Εκτός από αυτές, ωστόσο, υπάρχουν πολλές άλλες περιπτώσεις χρήσης:

  • Κοινή χρήση οπτικοποίησης, με ή χωρίς αλληλεπίδραση. Οι χρήστες συχνά μοιράζονται τα αποτελέσματα μιας οπτικοποίησης δεδομένων ως στατική εικόνα, αλλά αυτό είναι χρήσιμο μόνο μέχρι ένα σημείο. Με την κοινή χρήση ενός σημειωματάριου Jupyter, επιτρέπετε στο κοινό-στόχο σας να βουτήξει και να παίξει. Μπορούν να αποκτήσουν μια διεξοδική κατανόηση των δεδομένων, διαδραστικά.
  • Τεκμηρίωση μιας διαδικασίας με κωδικό. Πολλοί προγραμματιστές που κάνουν blog για τις εμπειρίες προγραμματισμού γράφουν τις δημοσιεύσεις τους σε ένα σημειωματάριο Jupyter. Άλλοι μπορούν να κατεβάσουν το σημειωματάριό τους και να αναδημιουργήσουν την άσκηση.
  • Ζωντανή τεκμηρίωση για μια βιβλιοθήκη ή ενότητα. Τα περισσότερα έγγραφα για τις μονάδες Python είναι στατικά. ένα σημειωματάριο Jupyter μπορεί να χρησιμοποιηθεί ως διαδραστικό περιβάλλον δοκιμών για να μάθετε πώς λειτουργεί μια ενότητα. Κάθε μονάδα Python που λειτουργεί καλά σε μια διεπαφή φορητού υπολογιστή (ουσιαστικά, οτιδήποτε γράφει stdout ως μέρος της συμπεριφοράς του) είναι ένας καλός υποψήφιος για αυτό.
  • Κοινή χρήση κώδικα και δεδομένων γενικά. Το μόνο που χρειάζεται να κάνετε για να μοιραστείτε ένα σημειωματάριο Jupyter και τα σχετικά αρχεία δεδομένων του είναι να το τοποθετήσετε σε ένα αρχείο.

JupyterLab

Μια διεπαφή χρήστη επόμενης γενιάς για το Jupyter Notebook, που ονομάζεται JupyterLab, είναι τώρα διαθέσιμη και θεωρείται έτοιμη για χρήση στην παραγωγή.

Όπως εξηγείται στην ανάρτηση ιστολογίου που ανακοινώνει τη γενική διαθεσιμότητα, το JupyterLab είναι πιο εύπλαστο από ένα συμβατικό Σημειωματάριο Jupyter, επιτρέποντας στους χρήστες να μεταφέρουν και να αποθέτουν κελιά εντός και μεταξύ των σημειωματάριων και να τακτοποιούν το χώρο εργασίας σε ξεχωριστές καρτέλες και υποενότητες. Ο κώδικας μπορεί να εκτελείται απευθείας από αρχεία κειμένου καθώς και από αρχεία Jupyter Notebook και πολλές κοινές μορφές αρχείων για κώδικα και δεδομένα μπορούν να αποδοθούν με ζωντανές προεπισκοπήσεις.

Το JupyterLab μπορεί επίσης να προσαρμοστεί με επεκτάσεις για να προσθέσει υποστήριξη για νέες μορφές αρχείων, για να εμπλουτίσει τη διεπαφή ή για να παρέχει οποιονδήποτε αριθμό άλλων πρόσθετων δυνατοτήτων, επιτρέποντας ένα πολύ ευρύτερο φάσμα εφαρμογών φορητού υπολογιστή από το Jupyter Notebook. Το μακροπρόθεσμο σχέδιο είναι να αντικαταστήσει την τρέχουσα διεπαφή Jupyter Notebook με το JupyterLab, αλλά μόνο αφού το JupyterLab έχει αποδειχθεί αρκετά σταθερό και αξιόπιστο.

Περιορισμοί Jupyter Notebook

Όσο ισχυρό και χρήσιμο μπορεί να είναι το Jupyter Notebook, έχει κάποιους περιορισμούς που πρέπει να ληφθούν υπόψη.

  • Τα σημειωματάρια δεν είναι αυτόνομα. Αυτό είναι το μοναδικό μεγαλύτερο μειονέκτημα της χρήσης του Jupyter Notebook: Τα Notebooks απαιτούν το Jupyter runtime, μαζί με τις βιβλιοθήκες που σκοπεύετε να χρησιμοποιήσετε. Υπάρχουν μερικές στρατηγικές για τη δημιουργία αυτόνομων σημειωματάριων Jupyter, αλλά καμία από αυτές δεν υποστηρίζεται επίσημα. Προτιμάτε να διανέμετε σημειωματάρια σε άτομα που διαθέτουν ήδη υποδομή για να τα τρέχουν ή δεν σας πειράζει η εγκατάσταση (για παράδειγμα, μέσω της Anaconda).
  • Η κατάσταση συνεδρίας δεν μπορεί να αποθηκευτεί εύκολα. Η κατάσταση οποιουδήποτε κώδικα που εκτελείται σε ένα σημειωματάριο Jupyter δεν μπορεί να διατηρηθεί και να αποκατασταθεί με το προεπιλεγμένο σύνολο εργαλείων του Jupyter Notebook. Κάθε φορά που φορτώνετε το σημειωματάριο, θα πρέπει να εκτελείτε ξανά τον κωδικό σε αυτό για να επαναφέρετε την κατάστασή του.
  • Χωρίς διαδραστικό εντοπισμό σφαλμάτων ή άλλες λειτουργίες IDE. Το Jupyter Notebook δεν είναι ένα πλήρες περιβάλλον ανάπτυξης για την Python. Πολλές από τις δυνατότητες που θα περιμένατε να βρείτε σε ένα IDE - π.χ. διαδραστικό εντοπισμό σφαλμάτων, ολοκλήρωση κώδικα και διαχείριση λειτουργικών μονάδων - δεν είναι διαθέσιμα εκεί.
$config[zx-auto] not found$config[zx-overlay] not found