Apa sebenarnya yang boleh anda lakukan dengan Python? Berikut adalah 3 aplikasi utama Python.

Sekiranya anda berfikir untuk belajar Python - atau jika anda baru mula mempelajarinya - anda mungkin bertanya kepada diri sendiri:

"Apa sebenarnya yang dapat saya gunakan untuk Python?"

Itulah soalan sukar untuk dijawab, kerana terdapat begitu banyak aplikasi untuk Python.

Tetapi lama-kelamaan, saya perhatikan bahawa terdapat 3 aplikasi popular utama untuk Python:

  • Pembangunan Web
  • Sains Data - termasuk pembelajaran mesin, analisis data, dan visualisasi data
  • Skrip

Mari kita bercakap mengenai masing-masing secara bergantian.

Pembangunan Web

Kerangka web yang berdasarkan Python seperti Django dan Flask baru-baru ini menjadi sangat popular untuk pembangunan web.

Rangka kerja web ini membantu anda membuat kod sisi pelayan (kod backend) di Python. Itulah kod yang berjalan di pelayan anda, berbanding dengan peranti dan penyemak imbas pengguna (kod front-end). Sekiranya anda tidak mengetahui perbezaan antara kod backend dan kod front-end, sila lihat nota kaki saya di bawah.

Tetapi tunggu, mengapa saya memerlukan kerangka web?

Ini kerana kerangka web menjadikannya lebih mudah untuk membina logik backend umum. Ini termasuk pemetaan URL yang berlainan untuk potongan kod Python, berurusan dengan pangkalan data, dan menghasilkan fail HTML yang dilihat oleh pengguna di penyemak imbas mereka.

Kerangka web Python mana yang harus saya gunakan?

Django dan Flask adalah dua kerangka web Python yang paling popular. Saya akan mengesyorkan menggunakan salah satunya jika anda baru memulakannya.

Apa perbezaan antara Django dan Flask?

Terdapat artikel yang sangat baik mengenai topik ini oleh Gareth Dwyer, jadi izinkan saya memetiknya di sini:

te>

Kontras utama:

  • Flask memberikan kesederhanaan, fleksibiliti dan kawalan halus. Ia tidak disukai (ia membolehkan anda memutuskan bagaimana anda mahu melaksanakan sesuatu).
  • Django memberikan pengalaman menyeluruh: anda mendapat panel pentadbir, antaramuka pangkalan data, ORM [pemetaan hubungan objek], dan struktur direktori untuk aplikasi dan projek anda di luar kotak.

Anda mungkin harus memilih:

  • Flask, jika anda tertumpu pada pengalaman dan peluang belajar, atau jika anda mahukan lebih banyak kawalan mengenai komponen mana yang akan digunakan (seperti pangkalan data apa yang ingin anda gunakan dan bagaimana anda mahu berinteraksi dengannya).
  • Django, jika anda fokus pada produk akhir. Terutama jika anda mengusahakan aplikasi lurus seperti laman berita, e-kedai, atau blog, dan anda mahu selalu ada satu cara yang jelas untuk melakukan sesuatu.

te>

Dengan kata lain, Sekiranya anda seorang pemula, Flask mungkin merupakan pilihan yang lebih baik kerana ia mempunyai lebih sedikit komponen untuk ditangani. Flask adalah pilihan yang lebih baik jika anda mahukan penyesuaian yang lebih banyak.

Sebaliknya, jika anda ingin membina sesuatu secara langsung, Django mungkin akan membiarkan anda ke sana lebih cepat.

Sekarang, jika anda ingin belajar Django, saya cadangkan buku berjudul Django for Beginners. Anda boleh menemuinya di sini.

Anda juga boleh mendapatkan contoh bab percuma buku tersebut di sini.

Baiklah, mari kita pergi ke topik seterusnya!

Sains Data - termasuk pembelajaran mesin, analisis data, dan visualisasi data

Pertama sekali, mari ulasan ini apa pembelajaran mesin adalah .

Saya fikir cara terbaik untuk menjelaskan apa itu pembelajaran mesin adalah dengan memberi anda contoh yang mudah.

Katakan anda mahu mengembangkan program yang secara automatik mengesan apa yang ada dalam gambar.

Oleh itu, memandangkan gambar ini di bawah (Gambar 1), anda mahu program anda menyedari bahawa ia adalah anjing.

Original text


Memandangkan yang lain di bawah ini (Gambar 2), anda mahu program anda menyedari bahawa itu adalah jadual.

Anda mungkin mengatakan, saya boleh menulis beberapa kod untuk melakukannya. Sebagai contoh, mungkin jika terdapat banyak piksel coklat muda dalam gambar, maka kita boleh mengatakan bahawa ia adalah anjing.

Atau mungkin, anda dapat mengetahui cara mengesan tepi dalam gambar. Kemudian, anda mungkin mengatakan, jika terdapat banyak sisi lurus, maka itu adalah meja.

Walau bagaimanapun, pendekatan seperti ini menjadi sukar dengan cepat. Bagaimana jika ada anjing putih dalam gambar tanpa rambut coklat? Bagaimana jika gambar hanya menunjukkan bahagian bulat meja?

Di sinilah pembelajaran mesin masuk.

Pembelajaran mesin biasanya menerapkan algoritma yang secara automatik mengesan corak pada input yang diberikan.

Anda boleh memberikan, misalnya, 1,000 gambar anjing dan 1,000 gambar meja kepada algoritma pembelajaran mesin. Kemudian, ia akan mengetahui perbezaan antara anjing dan meja. Apabila anda memberikan gambar baru anjing atau meja, ia akan dapat mengenalinya.

Saya rasa ini agak serupa dengan bagaimana bayi belajar perkara baru. Bagaimana bayi mengetahui bahawa satu perkara kelihatan seperti anjing dan meja yang lain? Mungkin dari sekumpulan contoh.

Anda mungkin tidak secara eksplisit memberitahu bayi, "Jika ada yang berbulu dan mempunyai rambut coklat muda, maka itu mungkin anjing."

Anda mungkin hanya akan mengatakan, "Itu anjing. Ini juga anjing. Dan ini adalah meja. Yang itu juga meja. "

Algoritma pembelajaran mesin berfungsi dengan cara yang sama.

Anda boleh menggunakan idea yang sama untuk:

  • sistem cadangan (fikir YouTube, Amazon, dan Netflix)
  • pengecaman wajah
  • pengecaman suara

antara aplikasi lain.

Algoritma pembelajaran mesin popular yang mungkin pernah anda dengar termasuk:

  • Rangkaian saraf
  • Pembelajaran mendalam
  • Mesin vektor sokongan
  • Hutan rawak

Anda boleh menggunakan mana-mana algoritma di atas untuk menyelesaikan masalah pelabelan gambar yang saya jelaskan sebelumnya.

Python untuk pembelajaran mesin

Terdapat perpustakaan dan kerangka pembelajaran mesin popular untuk Python.

Dua yang paling popular adalah scikit- learning dan TensorFlow .

  • scikit-learn dilengkapi dengan beberapa algoritma pembelajaran mesin yang lebih popular terbina dalam. Saya sebutkan beberapa perkara di atas.
  • TensorFlow lebih merupakan perpustakaan peringkat rendah yang membolehkan anda membina algoritma pembelajaran mesin tersuai.

Sekiranya anda baru memulakan projek pembelajaran mesin, saya mengesyorkan agar anda memulakannya dengan scikit-learning. Sekiranya anda mula menghadapi masalah kecekapan, maka saya akan mula melihat TensorFlow.

Bagaimana saya mesti belajar pembelajaran mesin?

Untuk mempelajari asas pembelajaran mesin, saya akan mengesyorkan kursus pembelajaran mesin Stanford atau Caltech.

Harap maklum bahawa anda memerlukan pengetahuan asas mengenai kalkulus dan aljabar linear untuk memahami beberapa bahan dalam kursus tersebut.

Kemudian, saya akan mempraktikkan apa yang telah anda pelajari dari salah satu kursus tersebut dengan Kaggle. Ini adalah laman web di mana orang bersaing untuk membina algoritma pembelajaran mesin terbaik untuk masalah tertentu. Mereka juga mempunyai tutorial yang bagus untuk pemula.

Bagaimana dengan analisis data dan visualisasi data?

Untuk membantu anda memahami rupa bentuk ini, izinkan saya memberikan contoh ringkas di sini.

Katakan anda bekerja untuk syarikat yang menjual beberapa produk dalam talian.

Kemudian, sebagai penganalisis data, anda mungkin melukis graf bar seperti ini.

Dari grafik ini, kita dapat mengetahui bahawa lelaki membeli lebih dari 400 unit produk ini dan wanita membeli sekitar 350 unit produk ini pada hari minggu ini.

Sebagai penganalisis data, anda mungkin memberikan beberapa penjelasan yang mungkin untuk perbezaan ini.

Satu penjelasan yang mungkin jelas adalah bahawa produk ini lebih popular di kalangan lelaki berbanding wanita. Penjelasan lain yang mungkin adalah ukuran sampel terlalu kecil dan perbezaan ini disebabkan secara kebetulan. Namun satu lagi penjelasan yang mungkin berlaku adalah bahawa lelaki cenderung membeli produk ini lebih hanya pada hari Ahad atas sebab tertentu.

Untuk memahami penjelasan mana yang betul, anda mungkin melukis graf lain seperti ini.

Daripada menunjukkan data untuk hari Ahad sahaja, kami melihat data selama seminggu penuh. Seperti yang anda lihat, dari grafik ini, kita dapat melihat bahawa perbezaan ini cukup konsisten pada hari yang berlainan.

Dari sedikit analisis ini, anda mungkin menyimpulkan bahawa penjelasan yang paling meyakinkan untuk perbezaan ini adalah bahawa produk ini lebih popular di kalangan lelaki berbanding wanita.

Sebaliknya, bagaimana jika anda melihat grafik seperti ini?

Lalu, apa yang menjelaskan perbezaan pada hari Ahad?

Anda mungkin mengatakan, mungkin lelaki cenderung membeli lebih banyak produk ini hanya pada hari Ahad atas sebab tertentu. Atau, mungkin itu hanya kebetulan bahawa lelaki membelinya lebih banyak pada hari Ahad.

Jadi, ini adalah contoh ringkas bagaimana analisis data mungkin kelihatan di dunia nyata.

Kerja analisis data yang saya lakukan ketika bekerja di Google dan Microsoft sangat serupa dengan contoh ini - hanya lebih kompleks. Saya sebenarnya menggunakan Python di Google untuk analisis seperti ini, sementara saya menggunakan JavaScript di Microsoft.

Saya menggunakan SQL di kedua-dua syarikat tersebut untuk menarik data dari pangkalan data kami. Kemudian, saya akan menggunakan Python dan Matplotlib (di Google) atau JavaScript dan D3.js (di Microsoft) untuk memvisualisasikan dan menganalisis data ini.

Analisis data / visualisasi dengan Python

Salah satu perpustakaan yang paling popular untuk visualisasi data adalah Matplotlib.

Ini adalah perpustakaan yang baik untuk bermula kerana:

  • Mudah untuk memulakannya
  • Beberapa perpustakaan lain seperti dasar laut berdasarkannya. Oleh itu, belajar Matplotlib akan membantu anda mempelajari perpustakaan lain di kemudian hari.

Bagaimana saya harus belajar analisis data / visualisasi dengan Python?

Anda harus terlebih dahulu mempelajari asas-asas analisis data dan visualisasi. Semasa saya mencari sumber yang baik untuk ini dalam talian, saya tidak dapat mencari. Oleh itu, saya akhirnya membuat video YouTube mengenai topik ini:

Saya juga akhirnya membuat kursus penuh mengenai topik ini di Pluralsight, yang boleh anda ambil secara percuma dengan mendaftar ke percubaan percuma 10 hari mereka.

Saya akan mengesyorkan mereka berdua.

Setelah mempelajari asas-asas analisis data dan visualisasi, asas pembelajaran statistik dari laman web seperti Coursera dan Khan Academy juga akan membantu.

Skrip

Apa itu skrip?

Skrip biasanya merujuk kepada menulis program kecil yang dirancang untuk mengotomatisasi tugas mudah.

Oleh itu, izinkan saya memberi anda contoh dari pengalaman peribadi saya di sini.

Saya biasa bekerja di syarikat permulaan kecil di Jepun di mana kami mempunyai sistem sokongan e-mel. Ini adalah sistem untuk kami menjawab soalan yang dihantar oleh pelanggan kepada kami melalui e-mel.

Semasa saya bekerja di sana, saya mempunyai tugas untuk menghitung jumlah e-mel yang mengandungi kata kunci tertentu sehingga kami dapat menganalisis e-mel yang kami terima.

Kita boleh melakukannya secara manual, tetapi sebaliknya, saya menulis program / skrip ringkas untuk mengotomatiskan tugas ini.

Sebenarnya, kami menggunakan Ruby untuk ini, tetapi Python juga merupakan bahasa yang baik untuk tugas seperti ini. Python sangat sesuai untuk jenis tugas ini kerana ia mempunyai sintaks yang agak mudah dan senang ditulis. Ia juga pantas untuk menulis sesuatu yang kecil dengannya dan mengujinya.

Bagaimana dengan aplikasi terbenam?

Saya bukan pakar dalam aplikasi terbenam, tetapi saya tahu bahawa Python bekerjasama dengan Rasberry Pi. Nampaknya aplikasi popular di kalangan penggemar perkakasan.

Bagaimana dengan permainan?

Anda boleh menggunakan perpustakaan yang disebut PyGame untuk mengembangkan permainan, tetapi itu bukan mesin permainan paling popular di luar sana. Anda boleh menggunakannya untuk membina projek hobi, tetapi saya secara peribadi tidak akan memilihnya jika anda serius dalam pembangunan permainan.

Sebaliknya, saya cadangkan untuk memulakan Unity dengan C #, yang merupakan salah satu mesin permainan yang paling popular. Ini membolehkan anda membina permainan untuk banyak platform, termasuk Mac, Windows, iOS, dan Android.

Bagaimana dengan aplikasi desktop?

Anda boleh membuatnya dengan Python menggunakan Tkinter, tetapi ia juga bukan pilihan yang paling popular.

Sebaliknya, nampaknya bahasa seperti Java, C #, dan C ++ lebih popular untuk ini.

Baru-baru ini, beberapa syarikat telah mulai menggunakan JavaScript untuk membuat aplikasi Desktop juga.

Sebagai contoh, aplikasi desktop Slack dibina dengan sesuatu yang disebut Electron. Ini membolehkan anda membina aplikasi desktop dengan JavaScript.

Secara peribadi, jika saya membuat aplikasi desktop, saya akan menggunakan pilihan JavaScript. Ini membolehkan anda menggunakan semula beberapa kod dari versi web jika anda memilikinya.

Walau bagaimanapun, saya juga bukan pakar dalam aplikasi desktop, jadi sila beritahu saya dalam komen jika anda tidak bersetuju atau bersetuju dengan saya mengenai perkara ini.

Python 3 atau Python 2?

Saya akan mengesyorkan Python 3 kerana lebih moden dan ia adalah pilihan yang lebih popular pada masa ini.

Nota Kaki: Catatan mengenai kod back-end vs kod front-end (sekiranya anda tidak biasa dengan istilah):

Katakan anda mahu membuat sesuatu seperti Instagram.

Kemudian, anda perlu membuat kod front-end untuk setiap jenis peranti yang ingin anda sokong.

Anda mungkin menggunakan, sebagai contoh:

  • Swift untuk iOS
  • Java untuk Android
  • JavaScript untuk penyemak imbas web

Setiap set kod akan dijalankan pada setiap jenis peranti / penyemak imbas. Ini akan menjadi set kod yang menentukan susun atur aplikasi, seperti apa butang akan kelihatan semasa anda mengkliknya, dll

Walau bagaimanapun, anda masih memerlukan kemampuan untuk menyimpan maklumat dan foto pengguna. Anda mahu menyimpannya di pelayan anda dan bukan hanya pada peranti pengguna anda sehingga setiap pengikut pengguna dapat melihat foto mereka.

Di sinilah kod backend / kod sisi pelayan masuk. Anda perlu menulis beberapa kod backend untuk melakukan perkara seperti:

  • Jejaki siapa yang mengikuti siapa
  • Kompres foto sehingga tidak memakan banyak ruang simpanan
  • Mengesyorkan foto dan akaun baru kepada setiap pengguna dalam ciri penemuan

Jadi, ini adalah perbezaan antara kod backend dan kod front-end.

By the way, Python bukan satu-satunya pilihan yang baik untuk menulis kod backend / pelayan. Terdapat banyak pilihan popular lain, termasuk Node.js, yang berdasarkan JavaScript.

Suka artikel ini? Kemudian, anda mungkin juga menyukai saluran YouTube saya.

Saya mempunyai saluran YouTube pendidikan pengaturcaraan yang disebut CS Dojo dengan 440,000+ pelanggan, di mana saya menghasilkan lebih banyak kandungan seperti artikel ini.

Contohnya, anda mungkin menyukai video berikut:

Bagaimanapun, terima kasih banyak kerana membaca artikel saya!