0236.2240.741
msita.vietnam@gmail.com
Học lập trình Đà Nẵng
30 Sep 2018

Chính xác bạn có thể làm gì với Python? 3 ứng dụng chính của Python

Nếu bạn đang nghĩ đến việc học Python – hoặc nếu bạn mới bắt đầu học nó – bạn có thể tự hỏi mình:

“Chính xác thì tôi có thể sử dụng Python để làm gì?”

Vâng, đó là một câu hỏi khó trả lời, bởi vì có rất nhiều ứng dụng cho Python.

Nhưng theo thời gian, tôi đã quan sát thấy rằng có 3 ứng dụng phổ biến chính cho Python:

  • Phát triển web
  • Khoa học dữ liệu – bao gồm học máy, phân tích dữ liệu và hiển thị dữ liệu
  • Scripting

Hãy nói về từng người trong số họ lần lượt.

Phát triển web

Các khung công tác web dựa trên Python như Django và Flask gần đây đã trở nên rất phổ biến cho phát triển web.

Các khung công tác web này giúp bạn tạo mã phía máy chủ (mã phụ trợ) bằng Python. Đó là mã chạy trên máy chủ của bạn, trái ngược với trên các thiết bị và trình duyệt của người dùng (mã front-end). Nếu bạn không quen với sự khác biệt giữa mã phụ trợ và mã front-end, vui lòng xem chú thích dưới đây của tôi.

Nhưng chờ đợi, tại sao tôi cần một khuôn khổ web?

Đó là vì một khung công tác web giúp dễ dàng xây dựng logic phụ trợ phổ biến hơn. Điều này bao gồm ánh xạ các URL khác nhau tới các đoạn mã Python, xử lý cơ sở dữ liệu và tạo các tệp HTML mà người dùng thấy trên trình duyệt của họ.

Tôi nên sử dụng khung web Python nào?

Django và Flask là hai trong số các khung công tác web Python phổ biến nhất. Tôi khuyên bạn nên sử dụng một trong số họ nếu bạn chỉ mới bắt đầu.

Sự khác biệt giữa Django và Flask là gì?

Có một bài viết tuyệt vời về chủ đề này của Gareth Dwyer, vì vậy hãy để tôi trích dẫn nó ở đây:

<bắt đầu trích dẫn>

Tương phản chính:

  • Flask cung cấp sự đơn giản, linh hoạt và kiểm soát chi tiết. Nó không được đề cập (nó cho phép bạn quyết định cách bạn muốn thực hiện mọi thứ).
  • Django cung cấp trải nghiệm trọn gói: bạn có bảng quản trị, giao diện cơ sở dữ liệu, ORM [ánh xạ đối tượng-quan hệ] và cấu trúc thư mục cho các ứng dụng và dự án của bạn ra khỏi hộp.

Bạn có lẽ nên chọn:

  • Flask, nếu bạn tập trung vào trải nghiệm và cơ hội học tập, hoặc nếu bạn muốn kiểm soát nhiều hơn về thành phần nào cần sử dụng (chẳng hạn như cơ sở dữ liệu bạn muốn sử dụng và cách bạn muốn tương tác với chúng).
  • Django, nếu bạn tập trung vào sản phẩm cuối cùng. Đặc biệt là nếu bạn đang làm việc trên một ứng dụng đơn giản như một trang tin tức, một cửa hàng điện tử, hoặc blog, và bạn muốn luôn luôn có một cách rõ ràng, đơn giản để làm mọi thứ.

</ end quote>

Nói cách khác, Nếu bạn là người mới bắt đầu, Flask có lẽ là một lựa chọn tốt hơn bởi vì nó có ít thành phần hơn để giải quyết. Ngoài ra, Flask là một lựa chọn tốt hơn nếu bạn muốn tùy biến hơn.

Ngoài ra, theo người bạn kỹ sư dữ liệu của tôi Jonathan T Ho , Flask là phù hợp hơn cho việc tạo ra những thứ này được gọi là REST API hơn là Django do tính linh hoạt của nó.

Mặt khác, nếu bạn đang tìm kiếm để xây dựng một cái gì đó thẳng về phía trước, Django có thể sẽ cho phép bạn đến đó nhanh hơn.

Được rồi, chúng ta hãy đi đến chủ đề tiếp theo!

Khoa học dữ liệu – bao gồm học máy, phân tích dữ liệu và hiển thị dữ liệu

Trước hết, chúng ta hãy xem xét việc học máy  là gì .

Tôi nghĩ cách tốt nhất để giải thích việc học máy là gì sẽ cho bạn một ví dụ đơn giản.

Giả sử bạn muốn phát triển một chương trình tự động phát hiện nội dung trong ảnh.

Vì vậy, với hình ảnh này dưới đây (Hình 1), bạn muốn chương trình của bạn để nhận ra rằng đó là một con chó.

Bức tranh 1

Với điều này bên dưới (Hình 2), bạn muốn chương trình của bạn nhận ra rằng đó là một bảng.

Hình 2

Bạn có thể nói, tốt, tôi chỉ có thể viết một số mã để làm điều đó. Ví dụ, có thể nếu có rất nhiều điểm ảnh màu nâu nhạt trong hình, thì chúng ta có thể nói rằng đó là một con chó.

Hoặc có thể, bạn có thể tìm ra cách phát hiện các cạnh trong hình ảnh. Sau đó, bạn có thể nói, nếu có nhiều cạnh thẳng, thì đó là một cái bàn.

Tuy nhiên, cách tiếp cận này khá nhanh chóng. Điều gì sẽ xảy ra nếu có một chú chó trắng trong ảnh không có mái tóc nâu? Điều gì xảy ra nếu hình ảnh chỉ hiển thị các phần tròn của bảng?

Đây là nơi học máy đi vào.

Học máy thường thực hiện một thuật toán tự động phát hiện một mẫu trong đầu vào đã cho.

Bạn có thể đưa ra, ví dụ, 1.000 hình ảnh của một con chó và 1.000 hình ảnh của một bảng cho một thuật toán học máy. Sau đó, nó sẽ tìm hiểu sự khác biệt giữa một con chó và một cái bàn. Khi bạn cho nó một hình ảnh mới của một con chó hoặc một cái bàn, nó sẽ có thể nhận ra nó là cái gì.

Tôi nghĩ điều này có phần tương tự như cách một đứa trẻ học những điều mới. Làm thế nào để một đứa trẻ biết rằng một thứ trông giống như một con chó và một cái bàn khác? Có lẽ từ một loạt các ví dụ.

Bạn có thể không nói một cách rõ ràng một đứa bé, “Nếu có thứ gì đó có lông và có mái tóc màu nâu nhạt, thì đó có thể là một con chó.”

Bạn có lẽ sẽ chỉ nói, “Đó là một con chó. Đây cũng là một con chó. Và cái này là một cái bàn. Cái đó cũng là một cái bàn. ”

Thuật toán học máy hoạt động theo cùng một cách.

Bạn có thể áp dụng cùng một ý tưởng cho:

  • hệ thống đề xuất (nghĩ YouTube, Amazon và Netflix)
  • nhận dạng khuôn mặt
  • nhận diện giọng nói

trong số các ứng dụng khác.

Thuật toán học máy phổ biến mà bạn có thể đã nghe nói về bao gồm:

  • Mạng thần kinh
  • Học kĩ càng
  • Hỗ trợ máy vectơ
  • Rừng ngẫu nhiên

Bạn có thể sử dụng bất kỳ thuật toán nào ở trên để giải quyết vấn đề ghi nhãn hình ảnh mà tôi đã giải thích trước đó.

Python cho học máy

Có các thư viện và khung công tác học máy phổ biến cho Python.

Hai trong số những cái phổ biến nhất là scikit-learn và TensorFlow .

  • scikit-learn đi kèm với một số thuật toán học máy phổ biến hơn được tích hợp sẵn. Tôi đã đề cập đến một số người trong số họ ở trên.
  • TensorFlow là một thư viện cấp thấp hơn, cho phép bạn xây dựng các thuật toán học máy tùy chỉnh.

Nếu bạn chỉ mới bắt đầu với một dự án học máy, tôi khuyên bạn nên bắt đầu với scikit-learn. Nếu bạn bắt đầu chạy vào các vấn đề hiệu quả, thì tôi sẽ bắt đầu nhìn vào TensorFlow.

Tôi nên học máy như thế nào?

Để tìm hiểu các nguyên tắc cơ bản về học máy, tôi khuyên bạn nên học khóa học máy của Stanford hoặc Caltech .

Xin lưu ý rằng bạn cần kiến ​​thức cơ bản về phép tính và đại số tuyến tính để hiểu một số tài liệu trong các khóa học đó.

Sau đó, tôi sẽ thực hành những gì bạn đã học được từ một trong những khóa học với Kaggle . Đó là trang web nơi mọi người cạnh tranh để xây dựng thuật toán học máy tốt nhất cho một vấn đề nhất định. Họ có hướng dẫn tốt đẹp cho người mới bắt đầu, quá.

Điều gì về phân tích dữ liệu và hiển thị dữ liệu?

Để giúp bạn hiểu những điều này có thể trông như thế nào, hãy để tôi cung cấp cho bạn một ví dụ đơn giản tại đây.

Giả sử bạn đang làm việc cho một công ty bán một số sản phẩm trực tuyến.

Sau đó, với tư cách là một nhà phân tích dữ liệu, bạn có thể vẽ một biểu đồ dạng thanh như thế này.

Biểu đồ thanh 1 – được tạo bằng Python

Từ biểu đồ này, chúng ta có thể nói rằng nam giới đã mua hơn 400 đơn vị sản phẩm này và phụ nữ đã mua khoảng 350 đơn vị sản phẩm này vào Chủ nhật cụ thể này.

Là một nhà phân tích dữ liệu, bạn có thể đưa ra một số giải thích có thể cho sự khác biệt này.

Một lời giải thích rõ ràng có thể là sản phẩm này phổ biến hơn với đàn ông hơn là với phụ nữ. Một lời giải thích khác có thể là kích thước mẫu quá nhỏ và sự khác biệt này chỉ gây ra tình cờ. Và một lời giải thích khác có thể là đàn ông có xu hướng mua sản phẩm này nhiều hơn chỉ vào Chủ Nhật vì một lý do nào đó.

Để hiểu giải thích nào là đúng, bạn có thể vẽ một biểu đồ như thế này.

Biểu đồ đường 1 – được tạo bằng Python

Thay vì chỉ hiển thị dữ liệu cho Chủ nhật, chúng tôi đang xem dữ liệu trong một tuần. Như bạn có thể thấy, từ biểu đồ này, chúng ta có thể thấy rằng sự khác biệt này khá nhất quán so với các ngày khác nhau.

Từ phân tích nhỏ này, bạn có thể kết luận rằng lời giải thích thuyết phục nhất cho sự khác biệt này là sản phẩm này đơn giản là phổ biến hơn với đàn ông hơn là với phụ nữ.

Mặt khác, nếu bạn thấy biểu đồ như thế này thì sao?

Biểu đồ đường 2 – cũng được tạo bằng Python

Sau đó, điều gì giải thích sự khác biệt vào chủ nhật?

Bạn có thể nói, có lẽ đàn ông có xu hướng mua nhiều sản phẩm này chỉ vào Chủ Nhật vì một số lý do. Hoặc, có lẽ nó chỉ là một sự trùng hợp ngẫu nhiên mà người đàn ông đã mua nhiều hơn vào ngày chủ nhật.

Vì vậy, đây là một ví dụ đơn giản về phân tích dữ liệu có thể trông như thế nào trong thế giới thực.

Công việc phân tích dữ liệu tôi đã làm khi tôi làm việc tại Google và Microsoft rất giống với ví dụ này – chỉ phức tạp hơn. Tôi thực sự đã sử dụng Python tại Google cho loại phân tích này, trong khi tôi đã sử dụng JavaScript tại Microsoft.

Tôi đã sử dụng SQL ở cả hai công ty đó để lấy dữ liệu từ cơ sở dữ liệu của chúng tôi. Sau đó, tôi sẽ sử dụng Python và Matplotlib (tại Google) hoặc JavaScript và D3.js (tại Microsoft) để trực quan hóa và phân tích dữ liệu này.

Phân tích dữ liệu / trực quan bằng Python

Một trong những thư viện phổ biến nhất để hiển thị dữ liệu là Matplotlib .

Đó là một thư viện tốt để bắt đầu vì:

  • Thật dễ dàng để bắt đầu với
  • Một số thư viện khác như seaborn được dựa trên nó. Vì vậy, việc học Matplotlib sẽ giúp bạn tìm hiểu các thư viện này sau này.

Tôi nên học phân tích dữ liệu / trực quan bằng Python như thế nào?

Trước tiên, bạn phải tìm hiểu các nguyên tắc cơ bản về phân tích dữ liệu và trực quan hóa. Khi tôi tìm kiếm tài nguyên tốt cho trực tuyến này, tôi không thể tìm thấy bất kỳ tài nguyên nào. Vì vậy, tôi đã kết thúc tạo một video trên YouTube về chủ đề này:

Giới thiệu về Phân tích dữ liệu / Hình ảnh hóa bằng Python và Matplotlib

Tôi cũng đã kết thúc khóa học đầy đủ về chủ đề này trên Pluralsight , mà bạn có thể làm miễn phí bằng cách đăng ký bản dùng thử miễn phí 10 ngày của họ.

Tôi muốn giới thiệu cả hai.

Sau khi tìm hiểu các nguyên tắc cơ bản về phân tích dữ liệu và hình dung, các nguyên tắc cơ bản về thống kê từ các trang web như Coursera và Khan Academy cũng sẽ hữu ích.

Scripting

Kịch bản là gì?

Scripting thường đề cập đến việc viết các chương trình nhỏ được thiết kế để tự động hóa các tác vụ đơn giản.

Vì vậy, hãy để tôi cung cấp cho bạn một ví dụ từ kinh nghiệm cá nhân của tôi ở đây.

Tôi đã từng làm việc tại một công ty nhỏ ở Nhật Bản, nơi chúng tôi có hệ thống hỗ trợ qua email. Đó là một hệ thống để chúng tôi trả lời các câu hỏi mà khách hàng đã gửi cho chúng tôi qua email.

Khi tôi làm việc ở đó, tôi có nhiệm vụ đếm số lượng email chứa các từ khóa nhất định để chúng tôi có thể phân tích các email mà chúng tôi nhận được.

Chúng tôi có thể thực hiện nó theo cách thủ công, nhưng thay vào đó, tôi đã viết một chương trình đơn giản / tập lệnh đơn giản để tự động hóa tác vụ này.

Trên thực tế, chúng tôi đã sử dụng Ruby cho việc này, nhưng Python cũng là một ngôn ngữ tốt cho loại nhiệm vụ này. Python phù hợp với loại nhiệm vụ này chủ yếu vì nó có cú pháp tương đối đơn giản và dễ viết. Nó cũng nhanh chóng để viết một cái gì đó nhỏ với nó và kiểm tra nó.

Điều gì về các ứng dụng nhúng?

Tôi không phải là một chuyên gia về các ứng dụng nhúng, nhưng tôi biết rằng Python làm việc với Rasberry Pi. Nó có vẻ giống như một ứng dụng phổ biến trong số những người có sở thích phần cứng.

Điều gì về chơi game?

Bạn có thể sử dụng thư viện được gọi là PyGame để phát triển trò chơi, nhưng nó không phải là công cụ chơi game phổ biến nhất trên mạng. Bạn có thể sử dụng nó để xây dựng một dự án sở thích, nhưng cá nhân tôi sẽ không chọn nó nếu bạn nghiêm túc về phát triển game.

Thay vào đó, tôi khuyên bạn nên bắt đầu với Unity với C #, một trong những công cụ chơi game phổ biến nhất. Nó cho phép bạn xây dựng một trò chơi cho nhiều nền tảng, bao gồm Mac, Windows, iOS và Android.

Điều gì về các ứng dụng máy tính để bàn?

Bạn có thể tạo một cái bằng Python bằng Tkinter, nhưng nó không có vẻ là lựa chọn phổ biến nhất.

Thay vào đó, có vẻ như các ngôn ngữ như Java, C # và C ++ phổ biến hơn cho điều này.

Gần đây, một số công ty đã bắt đầu sử dụng JavaScript để tạo ra các ứng dụng Desktop.

Ví dụ, ứng dụng máy tính để bàn của Slack được xây dựng với cái gọi là Electron . Nó cho phép bạn xây dựng các ứng dụng desktop với JavaScript.

Cá nhân, nếu tôi đang xây dựng một ứng dụng máy tính để bàn, tôi sẽ đi với một tùy chọn JavaScript. Nó cho phép bạn sử dụng lại một số mã từ một phiên bản web nếu bạn có nó.

Tuy nhiên, tôi không phải là một chuyên gia về các ứng dụng máy tính để bàn, vì vậy xin vui lòng cho tôi biết trong một bình luận nếu bạn không đồng ý hoặc đồng ý với tôi về điều này.

Python 3 hoặc Python 2?

Tôi muốn giới thiệu Python 3 vì nó hiện đại hơn và nó là một lựa chọn phổ biến hơn vào thời điểm này.

Chú thích: Lưu ý về mã back-end so với mã front-end (chỉ trong trường hợp bạn không quen thuộc với các điều khoản):

Giả sử bạn muốn tạo một thứ gì đó như Instagram.

Sau đó, bạn cần phải tạo mã front-end cho từng loại thiết bị mà bạn muốn hỗ trợ.

Bạn có thể sử dụng, ví dụ:

  • Swift cho iOS
  • Java dành cho Android
  • JavaScript cho trình duyệt web

Mỗi bộ mã sẽ chạy trên từng loại thiết bị / trình duyệt. Đây sẽ là bộ mã xác định bố cục của ứng dụng sẽ như thế nào, các nút sẽ trông như thế nào khi bạn nhấp vào chúng, v.v.

Tuy nhiên, bạn vẫn sẽ cần khả năng lưu trữ thông tin và ảnh của người dùng. Bạn sẽ muốn lưu trữ chúng trên máy chủ của bạn chứ không phải trên thiết bị của người dùng để mỗi người theo dõi của người dùng có thể xem ảnh của họ.

Đây là nơi mã phụ trợ / mã phía máy chủ xuất hiện. Bạn sẽ cần phải viết một số mã phụ trợ để thực hiện những việc như:

  • Theo dõi ai đang theo dõi ai
  • Nén ảnh để chúng không chiếm nhiều dung lượng lưu trữ
  • Đề xuất ảnh và tài khoản mới cho từng người dùng trong tính năng khám phá

Vì vậy, đây là sự khác biệt giữa mã phụ trợ và mã front-end.

Bằng cách này, Python không phải là lựa chọn tốt duy nhất để viết mã phụ trợ / phía máy chủ. Có nhiều lựa chọn phổ biến khác, bao gồm Node.js, dựa trên JavaScript.

 

Bạn muốn học lập trình hãy liên hệ ngay với Mỹ Vân để được nhận ưu đãi từ học viện nhé
Học lập trình tại Đà Nẵng
Học lập trình tại Đà Nẵng 0935029202
Số tài khoản : 56110000942174 BIDV Chi nhánh Đà Nẵng
HUYNH THI MY VAN