Τι ακριβώς μπορείτε να κάνετε με την Python; Εδώ είναι οι 3 κύριες εφαρμογές της Python.

Εάν σκέφτεστε να μάθετε την Python - ή αν το ξεκινήσατε πρόσφατα - ίσως αναρωτηθείτε:

"Τι ακριβώς μπορώ να χρησιμοποιήσω το Python;"

Λοιπόν αυτή είναι μια δύσκολη ερώτηση για απάντηση, επειδή υπάρχουν τόσες πολλές εφαρμογές για την Python.

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

  • Ανάπτυξη διαδικτύου
  • Επιστήμη δεδομένων - συμπεριλαμβανομένης της μηχανικής μάθησης, της ανάλυσης δεδομένων και της οπτικοποίησης δεδομένων
  • Σενάριο

Ας μιλήσουμε για κάθε ένα από αυτά με τη σειρά.

Ανάπτυξη διαδικτύου

Τα πλαίσια ιστού που βασίζονται στην Python όπως το Django και το Flask έχουν πρόσφατα γίνει πολύ δημοφιλή για την ανάπτυξη ιστού.

Αυτά τα πλαίσια ιστού σάς βοηθούν να δημιουργήσετε κώδικα από διακομιστή (backend code) στο Python. Αυτός είναι ο κωδικός που εκτελείται στον διακομιστή σας, σε αντίθεση με τις συσκευές και τα προγράμματα περιήγησης των χρηστών (κωδικός front-end). Εάν δεν είστε εξοικειωμένοι με τη διαφορά μεταξύ κώδικα backend και κώδικα front-end, δείτε την υποσημείωση παρακάτω.

Αλλά περιμένετε, γιατί χρειάζομαι ένα διαδικτυακό πλαίσιο;

Αυτό συμβαίνει επειδή ένα πλαίσιο ιστού διευκολύνει τη δημιουργία κοινής λογικής backend. Αυτό περιλαμβάνει τη χαρτογράφηση διαφορετικών διευθύνσεων URL σε κομμάτια κώδικα Python, τη διαχείριση βάσεων δεδομένων και τη δημιουργία αρχείων HTML που βλέπουν οι χρήστες στα προγράμματα περιήγησής τους.

Ποιο πλαίσιο ιστού Python πρέπει να χρησιμοποιήσω;

Το Django και το Flask είναι δύο από τα πιο δημοφιλή πλαίσια Ιστού Python. Θα συνιστούσα να χρησιμοποιήσετε ένα από αυτά εάν μόλις ξεκινήσετε.

Ποια είναι η διαφορά μεταξύ Django και Flask;

Υπάρχει ένα εξαιρετικό άρθρο σχετικά με αυτό το θέμα από τον Gareth Dwyer, οπότε επιτρέψτε μου να το παραθέσω εδώ:

te>

Κύριες αντιθέσεις:

  • Η φιάλη παρέχει απλότητα, ευελιξία και λεπτομερή έλεγχο. Δεν είναι γνωστή (σας επιτρέπει να αποφασίσετε πώς θέλετε να εφαρμόσετε τα πράγματα).
  • Το Django παρέχει μια ολοκληρωμένη εμπειρία: έχετε έναν πίνακα διαχείρισης, διεπαφές βάσης δεδομένων, μια ORM [αντιστοίχιση αντικειμενικής αντιστοίχισης] και μια δομή καταλόγου για τις εφαρμογές και τα έργα σας εκτός κουτιού.

Πιθανότατα θα πρέπει να επιλέξετε:

  • Φιάλη, εάν εστιάζετε στην εμπειρία και τις ευκαιρίες μάθησης ή εάν θέλετε περισσότερο έλεγχο σχετικά με τα στοιχεία που θα χρησιμοποιήσετε (όπως ποιες βάσεις δεδομένων θέλετε να χρησιμοποιήσετε και πώς θέλετε να αλληλεπιδράσετε μαζί τους).
  • Django, αν εστιάζετε στο τελικό προϊόν. Ειδικά αν εργάζεστε σε μια απλή εφαρμογή όπως ένας ιστότοπος ειδήσεων, ένα ηλεκτρονικό κατάστημα ή ιστολόγιο και θέλετε να υπάρχει πάντα ένας μοναδικός, προφανής τρόπος για να κάνετε τα πράγματα.

te>

Με άλλα λόγια, εάν είστε αρχάριος, το Flask είναι πιθανώς μια καλύτερη επιλογή επειδή έχει λιγότερα στοιχεία για να αντιμετωπίσει. Επίσης, το Flask είναι μια καλύτερη επιλογή εάν θέλετε περισσότερη προσαρμογή.

Από την άλλη πλευρά, αν θέλετε να φτιάξετε κάτι απλό, το Django πιθανότατα θα σας αφήσει να φτάσετε εκεί πιο γρήγορα.

Τώρα, αν θέλετε να μάθετε το Django, προτείνω το βιβλίο με τίτλο Django for Beginners. Μπορείτε να το βρείτε εδώ.

Μπορείτε επίσης να βρείτε τα δωρεάν δείγματα κεφαλαίων αυτού του βιβλίου εδώ.

Εντάξει, ας πάμε στο επόμενο θέμα!

Επιστήμη δεδομένων - συμπεριλαμβανομένης της μηχανικής μάθησης, της ανάλυσης δεδομένων και της οπτικοποίησης δεδομένων

Πρώτα απ 'όλα, ας ποια μηχανικής μάθησης αναθεώρηση του είναι .

Νομίζω ότι ο καλύτερος τρόπος για να εξηγήσω τι είναι η μηχανική μάθηση θα ήταν να σας δώσω ένα απλό παράδειγμα.

Ας υποθέσουμε ότι θέλετε να αναπτύξετε ένα πρόγραμμα που ανιχνεύει αυτόματα τι υπάρχει σε μια εικόνα.

Έτσι, δεδομένης αυτής της εικόνας παρακάτω (Εικόνα 1), θέλετε το πρόγραμμά σας να αναγνωρίζει ότι είναι σκύλος.

Δεδομένου αυτού του άλλου παρακάτω (Εικόνα 2), θέλετε το πρόγραμμά σας να αναγνωρίζει ότι είναι ένας πίνακας.

Μπορείτε να πείτε, λοιπόν, μπορώ απλώς να γράψω κάποιο κωδικό για να το κάνω αυτό. Για παράδειγμα, ίσως αν υπάρχουν πολλά ανοιχτά καφέ εικονοστοιχεία στην εικόνα, τότε μπορούμε να πούμε ότι είναι σκύλος.

Ή ίσως, μπορείτε να καταλάβετε πώς να ανιχνεύσετε άκρα σε μια εικόνα. Τότε, μπορείτε να πείτε, εάν υπάρχουν πολλές ευθείες άκρες, τότε είναι ένα τραπέζι.

Ωστόσο, αυτό το είδος προσέγγισης γίνεται δύσκολο αρκετά γρήγορα. Τι γίνεται αν υπάρχει λευκός σκύλος στην εικόνα χωρίς καστανά μαλλιά; Τι γίνεται αν η εικόνα δείχνει μόνο τα στρογγυλά μέρη του τραπεζιού;

Εδώ μπαίνει η μηχανική μάθηση.

Η μηχανική εκμάθηση εφαρμόζει συνήθως έναν αλγόριθμο που ανιχνεύει αυτόματα ένα μοτίβο στη δεδομένη είσοδο.

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

Νομίζω ότι αυτό είναι κάπως παρόμοιο με το πώς ένα μωρό μαθαίνει νέα πράγματα. Πώς μαθαίνει ένα μωρό ότι ένα πράγμα μοιάζει με σκύλο και άλλο ένα τραπέζι; Πιθανώς από πολλά παραδείγματα.

Πιθανότατα να μην πείτε ρητά σε ένα μωρό, "Αν κάτι είναι γούνινο και έχει ανοιχτό καστανά μαλλιά, τότε πιθανότατα είναι σκύλος."

Πιθανότατα απλώς να πείτε, «Αυτό είναι ένα σκυλί. Αυτό είναι επίσης ένα σκυλί. Και αυτό είναι ένα τραπέζι. Αυτό είναι επίσης ένα τραπέζι. "

Οι αλγόριθμοι μηχανικής μάθησης λειτουργούν με τον ίδιο τρόπο.

Μπορείτε να εφαρμόσετε την ίδια ιδέα σε:

  • συστήματα προτάσεων (σκεφτείτε το YouTube, το Amazon και το Netflix)
  • αναγνώριση προσώπου
  • αναγνώριση φωνής

μεταξύ άλλων εφαρμογών.

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

  • Νευρωνικά δίκτυα
  • Βαθιά μάθηση
  • Υποστήριξη μηχανών φορέα
  • Τυχαίο δάσος

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

Python για μηχανική μάθηση

Υπάρχουν δημοφιλείς βιβλιοθήκες μηχανικής μάθησης και πλαίσια για το Python.

Δύο από τα πιο δημοφιλή είναι το scikit-learn και το TensorFlow .

  • Το scikit-learn έρχεται με μερικούς από τους πιο δημοφιλείς ενσωματωμένους αλγόριθμους μηχανικής μάθησης. Ανέφερα μερικά από αυτά παραπάνω.
  • Το TensorFlow είναι περισσότερο μια βιβλιοθήκη χαμηλού επιπέδου που σας επιτρέπει να δημιουργήσετε προσαρμοσμένους αλγόριθμους μηχανικής μάθησης.

Εάν μόλις ξεκινήσετε με ένα πρόγραμμα μηχανικής μάθησης, θα συνιστούσα να ξεκινήσετε πρώτα με το scikit-learning. Εάν αρχίσετε να αντιμετωπίζετε προβλήματα απόδοσης, τότε θα αρχίσω να εξετάζω το TensorFlow.

Πώς πρέπει να μάθω μηχανική μάθηση;

Για να μάθετε τις βασικές αρχές της μηχανικής μάθησης, θα πρότεινα είτε το μάθημα μηχανικής μάθησης του Στάνφορντ είτε του Caltech.

Λάβετε υπόψη ότι χρειάζεστε βασικές γνώσεις για το λογισμό και τη γραμμική άλγεβρα για να κατανοήσετε ορισμένα από τα υλικά αυτών των μαθημάτων.

Στη συνέχεια, θα εξασκήσω ό, τι έχετε μάθει από ένα από αυτά τα μαθήματα με τον Kaggle. Είναι ένας ιστότοπος όπου οι άνθρωποι ανταγωνίζονται για να δημιουργήσουν τον καλύτερο αλγόριθμο μηχανικής μάθησης για ένα συγκεκριμένο πρόβλημα. Έχουν επίσης ωραία μαθήματα για αρχάριους.

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

Για να σας βοηθήσω να καταλάβετε πώς μοιάζουν αυτά, επιτρέψτε μου να σας δώσω ένα απλό παράδειγμα εδώ.

Ας υποθέσουμε ότι εργάζεστε για μια εταιρεία που πουλά ορισμένα προϊόντα στο διαδίκτυο.

Στη συνέχεια, ως αναλυτής δεδομένων, μπορείτε να σχεδιάσετε ένα ραβδόγραμμα όπως αυτό.

Από αυτό το γράφημα, μπορούμε να πούμε ότι οι άνδρες αγόρασαν πάνω από 400 μονάδες αυτού του προϊόντος και οι γυναίκες αγόρασαν περίπου 350 μονάδες αυτού του προϊόντος τη συγκεκριμένη Κυριακή.

Ως αναλυτής δεδομένων, μπορεί να βρείτε μερικές πιθανές εξηγήσεις για αυτήν τη διαφορά.

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

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

Αντί να εμφανίζονται τα δεδομένα μόνο για την Κυριακή, εξετάζουμε τα δεδομένα για μια ολόκληρη εβδομάδα. Όπως μπορείτε να δείτε, από αυτό το γράφημα, μπορούμε να δούμε ότι αυτή η διαφορά είναι αρκετά συνεπής σε διαφορετικές ημέρες.

Από αυτή τη μικρή ανάλυση, μπορεί να καταλήξετε στο συμπέρασμα ότι η πιο πειστική εξήγηση για αυτήν τη διαφορά είναι ότι αυτό το προϊόν είναι απλά πιο δημοφιλές στους άνδρες παρά στις γυναίκες.

Από την άλλη πλευρά, τι γίνεται αν δείτε ένα γράφημα σαν αυτό;

Τότε, τι εξηγεί τη διαφορά την Κυριακή;

Ίσως να πείτε, ίσως οι άνδρες τείνουν να αγοράζουν περισσότερο από αυτό το προϊόν μόνο την Κυριακή για κάποιο λόγο. Ή, ίσως ήταν απλώς μια σύμπτωση που οι άντρες αγόρασαν περισσότερα από αυτά την Κυριακή.

Αυτό είναι λοιπόν ένα απλοποιημένο παράδειγμα της ανάλυσης δεδομένων στον πραγματικό κόσμο.

Το έργο ανάλυσης δεδομένων που έκανα όταν εργαζόμουν στο Google και στη Microsoft ήταν πολύ παρόμοιο με αυτό το παράδειγμα - μόνο πιο περίπλοκο. Στην πραγματικότητα χρησιμοποίησα το Python στο Google για αυτό το είδος ανάλυσης, ενώ χρησιμοποίησα JavaScript στη Microsoft.

Χρησιμοποίησα το SQL και στις δύο αυτές εταιρείες για να αντλήσω δεδομένα από τις βάσεις δεδομένων μας. Στη συνέχεια, θα χρησιμοποιούσα Python και Matplotlib (στο Google) ή JavaScript και D3.js (στη Microsoft) για να οπτικοποιήσω και να αναλύσω αυτά τα δεδομένα.

Ανάλυση δεδομένων / οπτικοποίηση με την Python

Μία από τις πιο δημοφιλείς βιβλιοθήκες για την οπτικοποίηση δεδομένων είναι το Matplotlib.

Είναι μια καλή βιβλιοθήκη για να ξεκινήσετε γιατί:

  • Είναι εύκολο να ξεκινήσετε
  • Ορισμένες άλλες βιβλιοθήκες, όπως ο θαλασσοπόρος, βασίζονται σε αυτό. Έτσι, η εκμάθηση του Matplotlib θα σας βοηθήσει να μάθετε αυτές τις άλλες βιβλιοθήκες αργότερα.

Πώς πρέπει να μάθω ανάλυση δεδομένων / οπτικοποίηση με το Python;

Θα πρέπει πρώτα να μάθετε τις βασικές αρχές της ανάλυσης δεδομένων και της οπτικοποίησης. Όταν έψαχνα καλούς πόρους για αυτό το Διαδίκτυο, δεν μπορούσα να βρω κανένα. Έτσι, κατέληξα να δημιουργήσω ένα βίντεο στο YouTube σχετικά με αυτό το θέμα:

Κατέληξα επίσης να κάνω ένα πλήρες μάθημα για αυτό το θέμα στο Pluralsight, το οποίο μπορείτε να λάβετε δωρεάν εγγραφώντας στη δωρεάν δοκιμαστική περίοδο των 10 ημερών.

Θα συνιστούσα και τους δύο.

Αφού μάθετε τις βασικές αρχές της ανάλυσης δεδομένων και της οπτικοποίησης, θα μάθετε επίσης χρήσιμα τα βασικά στοιχεία της εκμάθησης στατιστικών από ιστότοπους όπως το Coursera και το Khan Academy.

Σενάριο

Τι είναι το σενάριο;

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

Λοιπόν, επιτρέψτε μου να σας δώσω ένα παράδειγμα από την προσωπική μου εμπειρία εδώ.

Δούλευα σε μια μικρή εκκίνηση στην Ιαπωνία όπου είχαμε ένα σύστημα υποστήριξης email. Ήταν ένα σύστημα για να απαντήσουμε σε ερωτήσεις που μας έστειλαν οι πελάτες μέσω email.

Όταν εργαζόμουν εκεί, είχα το καθήκον να μετρήσω τον αριθμό των email που περιέχουν συγκεκριμένες λέξεις-κλειδιά, ώστε να μπορέσουμε να αναλύσουμε τα email που λάβαμε.

Θα μπορούσαμε να το κάνουμε χειροκίνητα, αλλά αντ 'αυτού, έγραψα ένα απλό πρόγραμμα / απλό σενάριο για να αυτοματοποιήσω αυτήν την εργασία.

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

Τι γίνεται με τις ενσωματωμένες εφαρμογές;

Δεν είμαι ειδικός στις ενσωματωμένες εφαρμογές, αλλά ξέρω ότι η Python συνεργάζεται με το Rasberry Pi. Φαίνεται σαν μια δημοφιλής εφαρμογή στους λάτρεις του υλικού.

Τι γίνεται με το παιχνίδι;

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

Αντίθετα, θα συνιστούσα να ξεκινήσετε με το Unity με το C #, που είναι μια από τις πιο δημοφιλείς μηχανές παιχνιδιών. Σας επιτρέπει να δημιουργήσετε ένα παιχνίδι για πολλές πλατφόρμες, όπως Mac, Windows, iOS και Android.

Τι γίνεται με τις εφαρμογές επιτραπέζιου υπολογιστή;

Θα μπορούσατε να κάνετε ένα με την Python χρησιμοποιώντας το Tkinter, αλλά δεν φαίνεται να είναι και η πιο δημοφιλής επιλογή.

Αντ 'αυτού, φαίνεται ότι οι γλώσσες όπως Java, C # και C ++ είναι πιο δημοφιλείς γι' αυτό.

Πρόσφατα, ορισμένες εταιρείες έχουν αρχίσει να χρησιμοποιούν JavaScript για τη δημιουργία εφαρμογών Desktop.

Για παράδειγμα, η εφαρμογή επιτραπέζιου υπολογιστή του Slack δημιουργήθηκε με κάτι που ονομάζεται Electron. Σας επιτρέπει να δημιουργήσετε εφαρμογές για επιτραπέζιους υπολογιστές με JavaScript.

Προσωπικά, αν έφτιαχνα μια εφαρμογή επιτραπέζιου υπολογιστή, θα πήγαινα με μια επιλογή JavaScript. Σας επιτρέπει να επαναχρησιμοποιήσετε μέρος του κώδικα από μια διαδικτυακή έκδοση, εάν το έχετε.

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

Python 3 ή Python 2;

Θα συνιστούσα το Python 3, καθώς είναι πιο μοντέρνο και είναι μια πιο δημοφιλής επιλογή σε αυτό το σημείο.

Υποσημείωση: Μια σημείωση σχετικά με τον κώδικα back-end έναντι του κώδικα front-end (σε περίπτωση που δεν είστε εξοικειωμένοι με τους όρους):

Ας πούμε ότι θέλετε να δημιουργήσετε κάτι σαν το Instagram.

Στη συνέχεια, θα πρέπει να δημιουργήσετε κώδικα front-end για κάθε τύπο συσκευής που θέλετε να υποστηρίξετε.

Μπορείτε να χρησιμοποιήσετε, για παράδειγμα:

  • Swift για iOS
  • Java για Android
  • JavaScript για προγράμματα περιήγησης ιστού

Κάθε σύνολο κώδικα θα εκτελείται σε κάθε τύπο συσκευής / προγράμματος περιήγησης. Αυτό θα είναι το σύνολο κώδικα που καθορίζει πώς θα είναι η διάταξη της εφαρμογής, πώς θα μοιάζουν τα κουμπιά όταν κάνετε κλικ σε αυτά κ.λπ.

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

Εδώ μπαίνει ο κωδικός backend / server-side code. Θα χρειαστεί να γράψετε κάποιο backend code για να κάνετε πράγματα όπως:

  • Παρακολουθήστε ποιος ακολουθεί ποιος
  • Συμπίεση φωτογραφιών, ώστε να μην καταλαμβάνουν τόσο χώρο αποθήκευσης
  • Προτείνετε φωτογραφίες και νέους λογαριασμούς σε κάθε χρήστη στη δυνατότητα εντοπισμού

Έτσι, αυτή είναι η διαφορά μεταξύ κώδικα backend και κώδικα front-end.

Παρεμπιπτόντως, η Python δεν είναι η μόνη καλή επιλογή για τη σύνταξη κώδικα backend / διακομιστή. Υπάρχουν πολλές άλλες δημοφιλείς επιλογές, όπως το Node.js, το οποίο βασίζεται στο JavaScript.

Σας άρεσε αυτό το άρθρο; Στη συνέχεια, μπορεί να σας αρέσει και το κανάλι μου στο YouTube.

Έχω ένα κανάλι YouTube εκπαίδευσης προγραμματισμού που ονομάζεται CS Dojo με 440.000+ συνδρομητές, όπου παράγω περισσότερο περιεχόμενο όπως αυτό το άρθρο.

Για παράδειγμα, μπορεί να σας αρέσουν αυτά τα βίντεο:

Τέλος πάντων, ευχαριστώ πολύ που διαβάσατε το άρθρο μου!