Python ทำอะไรได้บ้าง? นี่คือ 3 แอปพลิเคชันหลักของ Python

หากคุณกำลังคิดที่จะเรียนรู้ Python หรือเพิ่งเริ่มเรียนรู้คุณอาจกำลังถามตัวเองว่า:

“ ฉันใช้ Python ทำอะไรได้บ้าง”

นั่นเป็นคำถามที่ตอบยากเพราะมีแอปพลิเคชั่นมากมายสำหรับ Python

แต่เมื่อเวลาผ่านไปฉันสังเกตเห็นว่ามีแอปพลิเคชั่นยอดนิยม 3 ตัวสำหรับ Python:

  • การพัฒนาเว็บ
  • วิทยาศาสตร์ข้อมูล - รวมถึงการเรียนรู้ของเครื่องการวิเคราะห์ข้อมูลและการแสดงข้อมูล
  • การเขียนสคริปต์

ลองพูดคุยเกี่ยวกับแต่ละคนในทางกลับกัน

การพัฒนาเว็บ

เว็บเฟรมเวิร์กที่ใช้ Python เช่นDjangoและFlaskเพิ่งได้รับความนิยมอย่างมากในการพัฒนาเว็บ

เว็บเฟรมเวิร์กเหล่านี้ช่วยให้คุณสร้างโค้ดฝั่งเซิร์ฟเวอร์ (โค้ดแบ็กเอนด์) ใน Python นั่นคือรหัสที่ทำงานบนเซิร์ฟเวอร์ของคุณซึ่งต่างจากบนอุปกรณ์และเบราว์เซอร์ของผู้ใช้ (รหัสส่วนหน้า) หากคุณไม่คุ้นเคยกับความแตกต่างระหว่างโค้ดแบ็กเอนด์และโค้ดส่วนหน้าโปรดดูเชิงอรรถของฉันด้านล่าง

แต่เดี๋ยวก่อนทำไมฉันต้องมีกรอบงานเว็บ?

นั่นเป็นเพราะเว็บเฟรมเวิร์กช่วยให้สร้างตรรกะแบ็กเอนด์ทั่วไปได้ง่ายขึ้น ซึ่งรวมถึงการแมป URL ที่แตกต่างกันกับส่วนของโค้ด Python การจัดการกับฐานข้อมูลและการสร้างไฟล์ HTML ที่ผู้ใช้เห็นบนเบราว์เซอร์ของตน

ฉันควรใช้เว็บเฟรมเวิร์ก Python ใด

Django และ Flask เป็นสองในเว็บเฟรมเวิร์ก Python ที่ได้รับความนิยมมากที่สุด ฉันขอแนะนำให้ใช้หนึ่งในนั้นหากคุณเพิ่งเริ่มต้น

อะไรคือความแตกต่างระหว่าง Django และ Flask?

มีบทความที่ยอดเยี่ยมเกี่ยวกับหัวข้อนี้โดย Gareth Dwyer ดังนั้นให้ฉันพูดที่นี่:

te>

ความแตกต่างหลัก:

  • กระติกน้ำให้ความเรียบง่ายยืดหยุ่นและการควบคุมที่ละเอียด ไม่ได้เปิดใช้งาน (ช่วยให้คุณตัดสินใจได้ว่าคุณต้องการใช้สิ่งต่างๆอย่างไร)
  • Django มอบประสบการณ์ที่ครอบคลุมทั้งหมด: คุณจะได้รับแผงผู้ดูแลระบบอินเทอร์เฟซฐานข้อมูล ORM [การทำแผนที่เชิงสัมพันธ์เชิงวัตถุ] และโครงสร้างไดเร็กทอรีสำหรับแอปและโครงการของคุณ

คุณควรเลือก:

  • Flask หากคุณมุ่งเน้นไปที่ประสบการณ์และโอกาสในการเรียนรู้หรือหากคุณต้องการควบคุมเพิ่มเติมเกี่ยวกับส่วนประกอบที่จะใช้ (เช่นฐานข้อมูลใดที่คุณต้องการใช้และวิธีที่คุณต้องการโต้ตอบกับพวกเขา)
  • Django หากคุณมุ่งเน้นไปที่ผลิตภัณฑ์ขั้นสุดท้าย โดยเฉพาะอย่างยิ่งถ้าคุณกำลังทำงานกับแอปพลิเคชันแบบตรงไปตรงมาเช่นเว็บไซต์ข่าวร้านค้าออนไลน์หรือบล็อกและคุณต้องการให้มีวิธีเดียวที่ชัดเจนในการทำสิ่งต่างๆ

te>

กล่าวอีกนัยหนึ่งคือหากคุณเป็นมือใหม่ Flask น่าจะเป็นทางเลือกที่ดีกว่าเพราะมีส่วนประกอบน้อยกว่าที่จะจัดการ นอกจากนี้ Flask ยังเป็นตัวเลือกที่ดีกว่าหากคุณต้องการปรับแต่งเพิ่มเติม

ในทางกลับกันหากคุณต้องการสร้างสิ่งที่ตรงไปตรงมา Django อาจช่วยให้คุณไปถึงที่นั่นได้เร็วขึ้น

ตอนนี้ถ้าคุณต้องการเรียนรู้ Django ขอแนะนำหนังสือชื่อ Django for Beginners คุณสามารถค้นหาได้ที่นี่

คุณยังสามารถดูตัวอย่างบทของหนังสือเล่มนั้นได้ฟรีที่นี่

เอาล่ะเข้าเรื่องต่อไป!

วิทยาศาสตร์ข้อมูล - รวมถึงการเรียนรู้ของเครื่องการวิเคราะห์ข้อมูลและการแสดงข้อมูล

ก่อนอื่นเรามาดูกันว่าแมชชีนเลิร์นนิงคืออะไร

ฉันคิดว่าวิธีที่ดีที่สุดในการอธิบายว่าแมชชีนเลิร์นนิงคืออะไรคือตัวอย่างง่ายๆ

สมมติว่าคุณต้องการพัฒนาโปรแกรมที่ตรวจจับสิ่งที่อยู่ในภาพโดยอัตโนมัติ

ดังนั้นจากภาพด้านล่าง (ภาพที่ 1) คุณต้องการให้โปรแกรมของคุณรับรู้ว่ามันเป็นสุนัข

Original text


ให้อีกอันหนึ่งด้านล่าง (ภาพที่ 2) คุณต้องการให้โปรแกรมของคุณรับรู้ว่าเป็นตาราง

คุณอาจจะบอกว่าฉันเขียนโค้ดเพื่อทำแบบนั้นได้ ตัวอย่างเช่นหากในภาพมีพิกเซลสีน้ำตาลอ่อนจำนวนมากเราก็สามารถพูดได้ว่าเป็นสุนัข

หรือบางทีคุณอาจหาวิธีตรวจจับขอบในรูปภาพได้ จากนั้นคุณอาจบอกว่าถ้ามีขอบตรงมากก็แสดงว่าเป็นตาราง

อย่างไรก็ตามวิธีการแบบนี้ค่อนข้างยุ่งยากอย่างรวดเร็ว จะเป็นอย่างไรถ้าในภาพมีสุนัขสีขาวไม่มีขนสีน้ำตาล จะเกิดอะไรขึ้นถ้ารูปภาพแสดงเฉพาะส่วนกลมของตาราง?

นี่คือที่มาของการเรียนรู้ของเครื่อง

โดยทั่วไปการเรียนรู้ของเครื่องจะใช้อัลกอริทึมที่ตรวจจับรูปแบบในอินพุตที่กำหนดโดยอัตโนมัติ

คุณสามารถให้เช่นพูดภาพสุนัข 1,000 ภาพและตาราง 1,000 ภาพให้กับอัลกอริทึมการเรียนรู้ของเครื่อง จากนั้นมันจะเรียนรู้ความแตกต่างระหว่างสุนัขกับโต๊ะ เมื่อคุณให้ภาพใหม่ของสุนัขหรือโต๊ะมันจะสามารถจดจำได้ว่าเป็นสุนัขตัวไหน

ฉันคิดว่าสิ่งนี้ค่อนข้างคล้ายกับการที่ทารกเรียนรู้สิ่งใหม่ ๆ ทารกเรียนรู้ได้อย่างไรว่าสิ่งหนึ่งดูเหมือนสุนัขและอีกโต๊ะหนึ่ง? อาจมาจากตัวอย่างมากมาย

คุณอาจจะไม่บอกลูกอย่างชัดเจนว่า“ ถ้ามีขนยาวและมีขนสีน้ำตาลอ่อนก็น่าจะเป็นสุนัข”

คุณอาจจะพูดว่า“ นั่นคือสุนัข นี่ยังเป็นสุนัข และอันนี้คือตาราง อันนั้นเป็นโต๊ะด้วย”

อัลกอริทึมการเรียนรู้ของเครื่องทำงานในลักษณะเดียวกัน

คุณสามารถใช้แนวคิดเดียวกันนี้กับ:

  • ระบบคำแนะนำ (เช่น YouTube, Amazon และ Netflix)
  • การจดจำใบหน้า
  • การจดจำเสียง

ท่ามกลางแอปพลิเคชันอื่น ๆ

อัลกอริทึมการเรียนรู้ของเครื่องยอดนิยมที่คุณอาจเคยได้ยิน ได้แก่ :

  • โครงข่ายประสาท
  • การเรียนรู้เชิงลึก
  • สนับสนุนเครื่องเวกเตอร์
  • ป่าสุ่ม

คุณสามารถใช้อัลกอริทึมข้างต้นเพื่อแก้ปัญหาการติดฉลากรูปภาพที่ฉันอธิบายไว้ก่อนหน้านี้

Python สำหรับการเรียนรู้ของเครื่อง

มีไลบรารีการเรียนรู้ของเครื่องยอดนิยมและเฟรมเวิร์กสำหรับ Python

สองคนนิยมมากที่สุดคือscikit เรียนรู้และTensorFlow

  • scikit-learn มาพร้อมกับอัลกอริทึมการเรียนรู้ของเครื่องที่เป็นที่นิยมมากขึ้นในตัว ฉันได้กล่าวถึงบางส่วนข้างต้น
  • TensorFlow เป็นไลบรารีระดับต่ำที่ให้คุณสร้างอัลกอริทึมการเรียนรู้ของเครื่องที่กำหนดเองได้

หากคุณเพิ่งเริ่มต้นด้วยโครงการแมชชีนเลิร์นนิงฉันขอแนะนำให้คุณเริ่มต้นด้วย scikit-learn ก่อน หากคุณเริ่มพบปัญหาด้านประสิทธิภาพฉันจะเริ่มมองหา TensorFlow

ฉันจะเรียนรู้แมชชีนเลิร์นนิงได้อย่างไร

หากต้องการเรียนรู้พื้นฐานการเรียนรู้ของเครื่องฉันขอแนะนำหลักสูตร Machine Learning ของ Stanford หรือ 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 จะเป็นประโยชน์เช่นกัน

การเขียนสคริปต์

การเขียนสคริปต์คืออะไร?

การเขียนสคริปต์มักหมายถึงการเขียนโปรแกรมขนาดเล็กที่ออกแบบมาเพื่อทำงานง่ายๆโดยอัตโนมัติ

ผมขอยกตัวอย่างจากประสบการณ์ส่วนตัวที่นี่

ฉันเคยทำงานที่สตาร์ทอัพเล็ก ๆ ในญี่ปุ่นซึ่งเรามีระบบสนับสนุนทางอีเมล เป็นระบบสำหรับเราในการตอบคำถามที่ลูกค้าส่งมาทางอีเมล

ตอนที่ฉันทำงานที่นั่นฉันมีภารกิจในการนับจำนวนอีเมลที่มีคีย์เวิร์ดบางคำเพื่อให้เราวิเคราะห์อีเมลที่เราได้รับ

เราสามารถทำได้ด้วยตนเอง แต่ฉันเขียนโปรแกรมธรรมดา / สคริปต์ง่ายๆเพื่อทำงานนี้โดยอัตโนมัติ

อันที่จริงเราใช้ Ruby สำหรับสิ่งนี้ในตอนนั้น แต่ Python ก็เป็นภาษาที่ดีสำหรับงานประเภทนี้เช่นกัน Python เหมาะกับงานประเภทนี้เป็นหลักเนื่องจากมีไวยากรณ์ที่ค่อนข้างเรียบง่ายและเขียนง่าย นอกจากนี้ยังรวดเร็วในการเขียนสิ่งเล็ก ๆ ด้วยและทดสอบ

แอพพลิเคชั่นฝังตัวล่ะ

ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับแอปพลิเคชันแบบฝังตัว แต่ฉันรู้ว่า Python ทำงานร่วมกับ Rasberry Pi ได้ ดูเหมือนว่าเป็นแอปพลิเคชั่นยอดนิยมในหมู่มือสมัครเล่นด้านฮาร์ดแวร์

แล้วการเล่นเกมล่ะ?

คุณสามารถใช้ไลบรารีที่เรียกว่า PyGame เพื่อพัฒนาเกม แต่มันไม่ใช่เอนจิ้นเกมที่ได้รับความนิยมมากที่สุด คุณสามารถใช้เพื่อสร้างโปรเจ็กต์งานอดิเรก แต่โดยส่วนตัวแล้วฉันจะไม่เลือกถ้าคุณจริงจังกับการพัฒนาเกม

แต่ฉันอยากจะแนะนำให้เริ่มต้นกับ Unity ด้วย C # ซึ่งเป็นหนึ่งในเอ็นจิ้นการเล่นเกมที่ได้รับความนิยมมากที่สุด ช่วยให้คุณสร้างเกมสำหรับหลาย ๆ แพลตฟอร์มรวมถึง Mac, Windows, iOS และ Android

แอปพลิเคชันบนเดสก์ท็อปล่ะ

คุณสามารถสร้างด้วย Python โดยใช้ Tkinter แต่ดูเหมือนจะไม่ใช่ตัวเลือกยอดนิยมเช่นกัน

แต่ดูเหมือนว่าภาษาเช่น Java, C # และ C ++ จะได้รับความนิยมมากกว่าสำหรับสิ่งนี้

เมื่อเร็ว ๆ นี้ บริษัท บางแห่งได้เริ่มใช้ JavaScript เพื่อสร้างแอปพลิเคชันเดสก์ท็อปด้วย

ตัวอย่างเช่นแอปเดสก์ท็อปของ Slack ถูกสร้างขึ้นด้วยสิ่งที่เรียกว่า Electron ช่วยให้คุณสร้างแอปพลิเคชันเดสก์ท็อปด้วย JavaScript

โดยส่วนตัวแล้วถ้าฉันกำลังสร้างแอปพลิเคชันบนเดสก์ท็อปฉันจะใช้ตัวเลือก JavaScript ช่วยให้คุณสามารถใช้โค้ดบางส่วนจากเวอร์ชันเว็บซ้ำได้หากมี

อย่างไรก็ตามฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับแอปพลิเคชันเดสก์ท็อปด้วยดังนั้นโปรดแจ้งให้เราทราบในความคิดเห็นหากคุณไม่เห็นด้วยหรือเห็นด้วยกับฉันในเรื่องนี้

Python 3 หรือ Python 2?

ฉันอยากจะแนะนำ Python 3 เนื่องจากมันทันสมัยกว่าและเป็นตัวเลือกที่ได้รับความนิยมมากกว่าในตอนนี้

เชิงอรรถ: หมายเหตุเกี่ยวกับโค้ดส่วนหลังเทียบกับโค้ดส่วนหน้า (ในกรณีที่คุณไม่คุ้นเคยกับข้อกำหนด):

สมมติว่าคุณต้องการสร้างสิ่งที่เหมือน Instagram

จากนั้นคุณจะต้องสร้างรหัสส่วนหน้าสำหรับอุปกรณ์แต่ละประเภทที่คุณต้องการสนับสนุน

คุณอาจใช้ตัวอย่างเช่น:

  • Swift สำหรับ iOS
  • Java สำหรับ Android
  • JavaScript สำหรับเว็บเบราว์เซอร์

รหัสแต่ละชุดจะทำงานบนอุปกรณ์ / เบราว์เซอร์แต่ละประเภท นี่จะเป็นชุดรหัสที่กำหนดว่าเค้าโครงของแอปจะเป็นอย่างไรปุ่มควรมีลักษณะอย่างไรเมื่อคุณคลิกเป็นต้น

อย่างไรก็ตามคุณยังต้องการความสามารถในการจัดเก็บข้อมูลและรูปภาพของผู้ใช้ คุณจะต้องจัดเก็บไว้บนเซิร์ฟเวอร์ของคุณไม่ใช่แค่ในอุปกรณ์ของผู้ใช้ของคุณเพื่อให้ผู้ติดตามของผู้ใช้แต่ละคนสามารถดูรูปภาพของเขา / เธอได้

นี่คือที่มาของโค้ดแบ็กเอนด์ / โค้ดฝั่งเซิร์ฟเวอร์คุณจะต้องเขียนโค้ดแบ็กเอนด์เพื่อทำสิ่งต่างๆเช่น:

  • ติดตามว่าใครติดตามใคร
  • บีบอัดรูปภาพเพื่อไม่ให้ใช้พื้นที่เก็บข้อมูลมากนัก
  • แนะนำรูปภาพและบัญชีใหม่ให้กับผู้ใช้แต่ละคนในคุณลักษณะการค้นพบ

ดังนั้นนี่คือความแตกต่างระหว่างโค้ดแบ็กเอนด์และโค้ดส่วนหน้า

อย่างไรก็ตาม Python ไม่ใช่ทางเลือกเดียวที่ดีสำหรับการเขียนโค้ดแบ็กเอนด์ / ฝั่งเซิร์ฟเวอร์ มีตัวเลือกยอดนิยมอื่น ๆ อีกมากมายรวมถึง Node.js ซึ่งใช้ JavaScript

ชอบบทความนี้หรือไม่? จากนั้นคุณอาจชอบช่อง YouTube ของฉัน

ฉันมีช่อง YouTube เพื่อการศึกษาด้านการเขียนโปรแกรมชื่อ CS Dojo ซึ่งมีสมาชิก 440,000 คนขึ้นไปซึ่งฉันผลิตเนื้อหาเพิ่มเติมเช่นบทความนี้

ตัวอย่างเช่นคุณอาจชอบวิดีโอเหล่านี้:

อย่างไรก็ตามขอบคุณมากที่อ่านบทความของฉัน!