Các thư viện chuẩn trong python

Python là một ngôn ngữ được sử dụng rộng rãi, từ Data Science, đến Scripting, hay Embedded Applications, thậm chí là cả làm game hay làm Desktop Applications ... và một số yêu cầu cơ bản của người code như làm web, tính toán và làm những dự án nhỏ.

Mặc dù Python có vẻ không nhanh bằng C++ hay C, nhưng điều cá nhân mình đánh giá cao ở Python chính là những Libraries và Packages nhiều không kể hết của nó, và điều này thật sự rất có lợi khi phải làm việc với nhiều dòng code, khiến chúng dễ quản lý và sửa đổi hơn, với hơn 137,000 libraries và 198,826 packages trong cộng đồng của Python, mọi thứ dường như được đơn giản hóa và tối ưu hơn đối với Python.

Trong phần này, mình sẽ giới thiệu sơ qua 10 thư viện và góiđầu tiên mà người mới nên bắt đầu với nó.

Libraries là gì? Packages là gì?

1. Libraries trong Python.

Một Libraries, hay thường gọi là Modules trong Python có nghĩa là một dạng như thư viện chúng ta thường biết, chúng đều chứa những "cuốn sách" mang giá trị thông tin, tuy nhiên trong Python, thay vì sách, các bạn sẽ truy xuất những Module và áp dụng chúng trong quá trình coding của mình, thay chúng ta làm những việc đơn giản nhưng tốn thời gian, có thể hiểu đơn giản là công dụng của chúng giống như một hàm xử lý được tích hợp vào một thư viện.

2. Packages trong Python.

Package trong Python là một thư mục chứa một hoặc nhiều modules hay các package khác nhau, nó được tạo ra  nhằm mục đích phân bố các modules có cùng chức năng hay một cái gì đó, để dễ quản lý source code, hay nói là một gói hỗ trợ các module cũng được.

Top 30 Libraries và Packages cho người mới học Python

01. Pilow- Xử lý hình ảnh

Nhìn chung, Pilow là một phần của PIL- Python Image Libary. Đầu tiên, Pilow được xây dựng trên kiến trúc của PIL, nhưng sau đó, nó chuyển đổi thành một thứ thân thiện và tốt hơn, những chuyên gia thường nói với nhau Pilow thật ra là bản nâng cấp của PIL, tóm lại Pilow là một lựa chọn đáng tin cậy nếu bạn đang có một dự án cần phải làm việc với nhiều hình ảnh hay kể cả những công ty lớn cũng nên dùng đến nó.

Các thư viện chuẩn trong python

Những khả năng của Pilow:

  • Khi sử dụng Pilow, bạn không chỉ có thể mở và lưu hình ảnh, mà còn có thể xử lý đặc điểm của hình ảnh, chẳng hạn như màu sắc, độ mờ, độ sáng, tối, ... 
  • Pilow hỗ trợ xử lý nhiều tệp hình ảnh khác nhau như PDF, WebP, PCX, PNG, JPEG, GIF, PSD, WebP, PCX, GIF, IM, EPS, ICO, BMP, và còn nhiều hơn thế. 
  • Với Piloư, bạn có thể dễ dàng tạo ra những ảnh thu nhỏ (thumbnails) cho hình ảnh, những ảnh thu nhỏ này mang hầu hết đặc điểm của hình ảnh và gần như không khác gì ảnh gốc ngoại trừ chúng được thu nhỏ lại. 
  • Pillow hỗ trợ một bộ sưu tập các bộ lọc hình ảnh như – FIND_EDGES, DETAIL, SMOOTH, BLUR, CONTOUR, SHARPEN, SMOOTH_MORE, etc. 
  • Pillow cung cấp sự hỗ trợ tuyệt vời từ cộng đồng người dùng của nó, những người luôn sẵn sàng trả lời, thử thách và làm việc thông qua bất kỳ câu hỏi nào của bạn.

Tải Pilow tại đây...

02. Matplotlib- Vẽ đồ thị 2D

Matplotlib là một thư viện Python sử dụng Python Script để giúp chúng ta tạo ra các đồ thị 2D thường được ứng dụng trong toán học và khoa học dữ liệu. Thư viện này có hỗ trợ tạo nhiều giao điểm giữa hai trục số trong cùng một lúc. Bên cạnh đó, chúng ta cũng có thể dùng Matplotlib để thao tác trực tiếp đến các đặc điểm khác nhau của đồ thị.

Các thư viện chuẩn trong python

Những khả năng của Matplotlib:

  • Matplotlib có thể tạo ra những đồ thị chất lượng và xuất ra một cách dễ dàng và thuận tiện, hoàn toàn đáp ứng nhu cầu của mọi ngành học. Các đồ thị được tạo ra bằng Matplotlib có sẵn bản sao cứng trên các nền tảng tương tác khác nhau. 
  • Bạn có thể dùng Matplotlib với nhiều bộ công cụ như Python Scripts, IPython Shells, Jupyter Notebook, và nhiều công cụ khác. 
  • Một số thư viện của bên thứ ba có thể được tích hợp với các ứng dụng Matplotlib. Chẳng hạn như seabornggplot, và các bộ công cụ chiếu xạ, mapping khác như basemap.
  • Một cộng đồng các nhà phát triển tích cực luôn sẵn sàng trợ giúp bạn với bất kỳ thắc mắc nào của bạn với Matplotlib. Sự đóng góp của họ cho Matplotlib là rất đáng khen ngợi.
  • Ngoài ra, bạn còn có thể theo dõi bất kỳ lỗi nào phát sinh trong quá trình coding, các bản vá mới, đồng thời còn có thể đóng góp các tính năng mới tại GitHub. Đó là một trang chính thức để nêu ra các vấn đề liên quan đến Matplotlib và cùng giải quyết chúng.

Tải Matplotlib tại đây...

03. Numpy- Xử lý mảng đa chiều, ma trận

Numpy là một gói xử lý (Processing Package) phổ biến của Python. NumPy làm phong phú ngôn ngữ lập trình Python với các cấu trúc dữ liệu mạnh mẽ để tính toán hiệu quả các mảng và ma trận đa chiều. Numpy không chỉ là một gói mô-đun để xử lý mảng mà nó còn cung cấp khả năng quản lý mảng cực kỳ vượt trội. Nhanh chóng, vượt trội, hiệu quả là những gì tôi được trải nghiệm với Numpy.

Các thư viện chuẩn trong python

Những khả năng của Numpy:

  • Numpy là một mô-đun mở rộng mã nguồn mở cho Python, cung cấp các chức năng biên dịch nhanh cho các thao tác toán học và số, thậm chí là với những ma trận và mảng có lượng dữ liệu khổng lồ. Bên cạnh đó các mô-đun cung cấp một thư viện lớn các chức năng toán học cấp cao để hoạt động trên các ma trận và mảng một cách dễ dàng và thuận tiện.
  • Numpy cung cấp những masked arrays đồng thời với mảng gốc. Nó cũng đi kèm với các chức năng như thao tác với hình dạng logic, biến đổi Fourier rời rạc, đại số tuyến tính tổng quát, và nhiều hơn nữa.
  • Mỗi khi bạn thay đổi đặc điểm của bất kỳ mảng N chiều nào, Numpy sẽ tạo các mảng mới cho mảng đó và xóa các mảng cũ.
  • Gói mô-đun này cung cấp các công cụ hữu ích để tích hợp với các ngôn ngữ lập trình khác. Chẳng hạn như C, C++, và ngôn ngữ lập trình Fortran. 
  • Numpy cung cấp các chức năng tương đương với MATLAB. Cả hai đều cho phép người dùng thao tác nhanh hơn.

Tải Numpy tại đây...

04. OpenCV (Python)- Xử lý hình ảnh

Cái này thì quá quen thuộc rồi với những lập trình viên C++ rồi, nó chỉ thay đổi chút hàm và thêm chút tính năng cho thuận tiện hơn thôi. Cho nên mình không nói nhiều quá nhé.

Về cơ bản, OpenCV là viết tắt của Open Source Computer Vision, tạm dịch là Thị giác máy tính mã nguồn mở (nghe cứ bla bla sao ấy), đúng như tên gọi mục đích chính của nó được tạo ra là nhằm tạo ra các chức năng thị giác máy tính, giám sát các chức năng tổng thể tập trung vào thị giác máy tính tức thì. Vì OpenCV không có tài liệu thích hợp, cho nên theo nhiều nhà phát triển, nó là một trong những thư viện khó học nhất. Tuy nhiên, nó vẫn cung cấp đầy đủ khả năng để giúp bạn học thị giác máy tính dễ hơn. 

Các thư viện chuẩn trong python

Những khả năng của OpenCV:

  • OpenCV là một gói mô-đun hình ảnh lý tưởng cho phép bạn đọc và ghi, thay đổi dữ liệu nhiều hình ảnh cùng một lúc. 
  • Tạo ra thị giác máy tính cho phép bạn xây dựng lại, gián đoạn và thông hiểu môi trường 3D từ môi trường 2D tương ứng của nó.
  • OpenCV được xử dùng nhiều trong nhận diện vật thể và hình ảnh được thiết lập trước, chẳng hạn như khuôn mặt, động vật, cây cối, các vật thể di chuyển, etc.
  • Bạn cũng có thể lưu và chụp bất kỳ khoảnh khắc nào của video và cũng có thể phân tích các thuộc tính khác nhau của nó như chuyển động, nền, etc.
  • OpenCV tương thích với nhiều hệ điều hành như Windows, OS-X, Open BSD và nhiều hệ điều hành khác.

Tải OpenCV tại đây...

05. Requests- Thư viện HTTP

Requests là một thư viện HTTP vô cùng phong phú và đa dạng. Được cấp phép hoạt động theo giấy phép Apache 2.0, Requests được tạo ra nhằm mục đích tập trung vào các yêu cầu HTTP, giúp đáp ứng nhanh hơn và thân thiện hơn với người dùng. Thư viện Python này thực sự rất dễ dàng cho người mới bắt đầu vì nó cho phép sử dụng hầu hết các phương thức phổ biến của HTTP. Bạn có thể dễ dàng tùy chỉnh, kiểm tra, ủy quyền và định cấu hình các yêu cầu HTTP bằng thư viện này, ngoài ra, bạn còn có thể trích xuất HTML của bất kỳ trang web nào từ URL của nó.

Các thư viện chuẩn trong python

Những khả năng của Requests:

  • Sử dụng Từ điển Python cơ bản trong Requests, bạn có thể thêm các tham số, tiêu đề, multi-part file và dữ liệu biểu mẫu.
  • Đây là một thư viện dễ dàng với rất nhiều tính năng cho phép bạn xử lý các tiêu đề tùy chỉnh, xác minh chứng chỉ SSL và quét các tham số về URL.
  • Với Requests, bạn có thể dễ dàng tải lên nhiều tệp cùng một lúc. Nó cho phép bạn làm việc trong một môi trường nhanh hơn và hiệu quả hơn.
  • Requests có tính năng giải nén tự động cho phép bạn khôi phục và phục hồi dữ liệu đã nén thành dạng xác thực của nó ngay lập tức. 
  • Tận hưởng những lợi ích của hỗ trợ proxy HTTP với Requests. Và cho phép người dùng của bạn một tuyến nhanh hơn và đơn giản hơn đến các tệp và trang của bạn.
  • Requests cũng có các cookie giá trị, cơ quan phản hồi Unicode, xác thực Basic/Digest, an toàn luồng, tổng hợp kết nối và nhiều hơn thế nữa.. 

Tải về Requests tại đây....

07. Keras- Deep Learning

- Đối với những ai muốn học về Deep Learning, hay Deep Neural Network (tạm dịch là Học sâu và Mạng thần kinh sâu). Keras sẽ là một lựa chọn tốt. Keras là một thư viện về mạng thần kinh sâu mã nguồn mở được viết bằng Python. Keras cung cấp một quyền kiểm tra hiệu quả trên các mạng chi tiết. Quả thật Keras rất ấn tượng với cấu trúc mô-đun và độ thân thiện với người dùng của nó, điều này đã được rất nhiều developper xác thực.

Các thư viện chuẩn trong python

Những khả năng của Keras:

  • KKeras là một thư viện Python mạnh mẽ. Nó có khả năng chạy trên Bộ công cụ nhận thức của Microsoft (Microsoft Cognitive Toolkit), PaidML, TensorFlow và các nền tảng khác.
  • Thư viện Python này có nhiều cách triển khai từ các khối hình thành mạng nơ-ron - chức năng, lớp, trình tối ưu hóa, các đối tượng và những thứ khác.
  • Keras cũng có nhiều công cụ hữu ích cho phép bạn làm việc với các hình ảnh và văn bản khác nhau một cách dễ dàng.
  • Nó không chỉ hỗ trợ mạng nơ-ron mà còn cung cấp một môi trường hỗ trợ đầy đủ cho các mạng nơ-ron tích hợp và tái hiện.
  • Sử dụng Keras, bạn có thể xây dựng các mô hình sâu cho điện thoại thông minh - cả Android và iOS hoặc cả Java Virtual Machine.

Tải về Keras tại đây...

07. TensorFlow- Machine Learning

TensorFlow là một thư viện miễn phí mã nguồn mở dành cho machine learning (học máy). Nó rất dễ dàng để học và sử dụng, bên cạnh đó nó còn có một bộ công cụ cực kỳ hữu ích và tiện lợi. Tuy nhiên, khả năng của nó không chỉ giới hạn ở machine learning, bạn có thể sử cho các luồng dữ liệu và nhiều chương trình khác nhau. Rất đơn giản để sử dụng được nó, bằng cách tải và cài đặt Colab Notebooks từ mọi trình duyệt.

Các thư viện chuẩn trong python

Những khả năng của TensorFlow:

  • TensorFlow sử dụng những API có hiệu suất cao và tự động như – Keras. Nó hỗ trợ khả năng xây dựng lại các mô hình machine learning gần như ngay tức khắc. 
  • Một điểm thú vị của thư viện này là nó có thể giúp chúng ta tiết kiệm thời gian hơn cho việc debug trong quá trình xây dựng mô hình và training thuật toán bằng cách sử dụng Eager Execution. 
  • Với TensorFlow, bạn có thể dễ dàng di chuyển các mô hình Machine Learning của mình trên kho dữ liệu đám mây, trên mọi thiết bị hoặc bất kỳ trình duyệt nào.
  • TensorFlow đi kèm với một kiến trúc dễ học. Bạn có thể nhanh chóng phát triển mô hình của mình thành code và tạo ra các sản phẩm dễ dàng hơn.
  • Nó gần như mang đến giải pháp cho mọi vấn đề của bạn về Machine Learning, nếu bạn đang gặp rắc rối với Machine Learning, hay đơn giản là muốn bắt đầu học, đừng bỏ qua nó.

Tải về TensorFlow tại đây...

08. Theano- Trình biên dịch tối ưu hóa

Theano là một thư viện Python và trình biên dịch cho các chương trình máy tính khả thi -hay còn gọi là trình biên dịch tối ưu hóa. Nó có thể thao tác và đánh giá các biểu thức toán học khác nhau cùng một lúc, đặc biệt là các biểu thức có dạng ma trận. Trong Theano, các tính toán được thể hiện bằng cú pháp NumPy-esque và được biên dịch để chạy hiệu quả trên các kiến ​​trúc CPU hoặc GPU. Vì Theano tận dụng tốt nhất các mảng đa chiều, bạn hầu như không phải lo lắng về sự tối ưu cho các dự án của mình.

Các thư viện chuẩn trong python

Những khả năng của Theano:

  • Theano có thể hoạt động thực sự tốt với GPU. Nó cũng có thể thực hiện phân biệt các đặc điểm khác nhau của một hay nhiều đầu vào.
  • Nó có giao diện khá giống với Numpy’s. Đây là lý do tại sao numpy.ndarrays đã được tích hợp sẵn trong Theano.
  • Theano cho phép bạn tránh các bug khi làm việc với các biểu thức. Bạn có thể làm việc liên tục trên các biểu thức mà không mất thời gian.
  • Thư viện này giúp tính toán nhanh hơn 140 lần so với thông thường. Tính toán các ứng dụng sử dụng nhiều dữ liệu dễ dàng hơn với Theano.
  • Đồng thời, nó cũng cung cấp nhiều công cụ hữu ích để tìm ra và xử lý bug, không chừa một con bug nào.

Tải về Theano tại đây...

09. NLTK- Natural Language Toolkit (Tạm dịch: Bộ công cụ Ngôn ngữ Tự nhiên)

NLTK hay Natural Language Toolkit là một trong những thư viện NLP (Natural Language Processing) phổ biến nhất của Python. Nó là một tập hợp các thư viện xử lý ngôn ngữ và các chương trình khác cung cấp tích lũy giải pháp xử lý ngôn ngữ số và ký hiệu chỉ dành cho tiếng Anh. Nó được viết bằng Python. Với NLTK, xử lý ngôn ngữ tự nhiên với python đã trở nên hợp lí và lý tưởng hơn.

Các thư viện chuẩn trong python

Những khả năng của NTLK:

  • Các thư viện xử lý văn bản của NLTK cũng cho phép phân loại, gắn thẻ, mã hóa, tạo gốc, phân tích cú pháp và lập luận ngữ nghĩa.
  • NLTK chứa một kho minh họa bằng hình ảnh về khoa học dữ liệu. Nó cũng đi kèm với một file hướng dẫn về các nguyên tắc xử lý ngôn ngữ cho NLTK.
  • NTLK hoàn toàn là một công cụ/thư viện mã nguồn mở, chứa hơn năm mươi tài nguyên ngữ liệu và từ vựng như mạng từ vựng đa ngôn ngữ mở, phân loại câu hỏi như SentiWordNet, SEMCOR, Stopwords Corpus, và nhiều hơn nữa.
  • NLTK cũng có các kiểu cấu trúc, phân tích chuỗi cấu trúc, tính năng các đường dẫn khác nhau và cả lối sau.
  • Sử dụng công cụ này, có nghĩa là bạn đã tham gia vào cộng đồng người sử dụng lớn của NTLK, cùng với một forum, nơi bạn có thể thảo luận và đưa ra bất kỳ vấn đề nào liên quan đến NLTK.

Tải về NTLK tại đây...

10. Fire- Tạo giao diện dòng lệnh.

Fire là một thư viện python mã nguồn mở. Nó có thể tự động tạo CLI (giao diện dòng lệnh). Thường thì muốn tạo ra một giao diện dòng lệnh sẽ rất tốn thời gian và công sức, tuy nhiên, với Fire bạn sẽ chỉ cần một vài dòng code ngắn gọn là có thể tạo được một giao diện có đầy đủ chức năng và hiệu suất cao. Fire là một thư viện mạnh mẽ có thể lấy CLI từ bất kỳ đối tượng python nào. Nó cũng được Google sử dụng để tạo dòng lệnh và các công cụ quản lý thử nghiệm khác nhau.

Các thư viện chuẩn trong python

Những khả năng của Fire:

  • Các đối tượng Python mà Fire có thể hoạt động là - mô-đun, đối tượng, lớp, danh sách, dicts, etc.
  • Các CLI được tạo bằng Fire có thể tương thích với bất kỳ thay đổi nào mỗi khi bạn thay đổi mã nguồn. Chúng sẽ được cập nhật tự động khi bạn thay đổi.
  • CLI ở dạng hoàn chỉnh với các trang trợ giúp tự động, hoàn thành tab và trong một hệ thống tương tác rất tốt.
  • Nó là một thư viện rất đơn giản. Nó có thể viết và gửi lệnh tại một phiên bản bằng cú pháp gọi Fire().
  • Fire đi kèm với một đầu ra tuyến tính. Khi bạn sử dụng Fire, bạn sẽ không cần tới bất kỳ chuỗi docstrings nào.

Tải về Fire tại đây...

Tạm kết

Đối với bài viết này, mình hi vọng sẽ có nhiều bạn chọn được một thư viện và gói để hỗ trợ cho quá trình code của mình, cũng như là giúp đẩy nhanh tiến độ các dự án của mọi người và tăng một phần hiệu suất nào đó cho code, bài viết được biên dịch từ trang này mọi ý kiến thắc mắc mình sẽ trả lời nhanh nhất có thể. Sự ủng hộ của mọi người là động lực rất lớn để mình tiếp tục ra 2 phần tiếp theo.