Làm cho gấu trúc nhanh hơn 3 lần với PyPolars

Nút nguồn: 1854103

Làm cho gấu trúc nhanh hơn 3 lần với PyPolars

Tìm hiểu cách tăng tốc quy trình làm việc cho Pandas của bạn bằng thư viện PyPolars.


By Satyam Kumar, Người đam mê học máy & lập trình viên



Photo by Tim Gouw on Unsplash

 

Pandas là một trong những gói Python quan trọng nhất trong số các gói dữ liệu của nhà khoa học dữ liệu để xử lý dữ liệu. Thư viện Pandas được sử dụng chủ yếu để khám phá và hiển thị dữ liệu vì nó đi kèm với rất nhiều chức năng có sẵn. Gấu trúc không xử lý được các tập dữ liệu kích thước lớn vì nó không chia tỷ lệ hoặc phân phối quy trình của mình trên tất cả các lõi của CPU.

Để tăng tốc độ tính toán, người ta có thể sử dụng tất cả các lõi của CPU và tăng tốc quy trình làm việc. Có nhiều thư viện mã nguồn mở khác nhau bao gồm Dask, Vaex, Modin, Pandarallel, PyPolars, v.v. song song các tính toán trên nhiều lõi của CPU. Trong bài viết này, chúng tôi sẽ thảo luận về việc triển khai và sử dụng thư viện PyPolars và so sánh hiệu suất của nó với thư viện Pandas.

PyPolars là gì?

 
PyPolars là một thư viện khung dữ liệu Python mã nguồn mở tương tự như Pandas. PyPolars sử dụng tất cả các lõi có sẵn của CPU và do đó thực hiện các phép tính nhanh hơn Pandas. PyPolars có một API tương tự như của Pandas. Nó được viết bằng gỉ với trình bao bọc Python.


Tốt nhất, PyPolars được sử dụng khi dữ liệu quá lớn đối với Gấu trúc và quá nhỏ đối với Spark


PyPolars hoạt động như thế nào?

 
Thư viện PyPolars có hai API, một là API Eager và API còn lại là Lazy API. Eager API rất giống với Pandas và kết quả được tạo ra ngay sau khi quá trình thực thi hoàn thành tương tự như Pandas. Lazy API rất giống với Spark, nơi một bản đồ hoặc kế hoạch được hình thành khi thực hiện một truy vấn. Sau đó, việc thực thi được thực hiện song song trên tất cả các lõi của CPU.



(Hình ảnh của Tác giả), API của PyPolars

 

PyPolars về cơ bản là liên kết python với thư viện Polars. Phần tốt nhất của thư viện PyPolars là API của nó tương tự như Pandas, giúp các nhà phát triển dễ dàng hơn.

Cài đặt:

 
PyPolars có thể được cài đặt từ PyPl bằng lệnh sau:

pip install py-polars


và nhập thư viện bằng cách sử dụng

import pypolars as pl


Ràng buộc về thời gian điểm chuẩn:


Đối với các cuộc trình diễn, tôi đã sử dụng một tập dữ liệu kích thước lớn (~ 6.4Gb) có 25 triệu phiên bản.




(Hình ảnh của Tác giả), Số thời gian điểm chuẩn cho các hoạt động cơ bản của Gấu trúc và Py-Polars

 

Đối với các con số thời gian chuẩn ở trên cho một số hoạt động cơ bản sử dụng thư viện Pandas và PyPolars, chúng ta có thể nhận thấy rằng PyPolars nhanh hơn gần như từ 2 đến 3 lần so với Pandas.

Bây giờ chúng ta biết rằng PyPolars có một API rất giống với API của Gấu trúc, nhưng vẫn chưa bao gồm tất cả các chức năng của Gấu trúc. Ví dụ, chúng tôi không có .describe() trong PyPolars, thay vào đó, chúng ta có thể sử dụng df_pypolars.to_pandas().describe()

Cách sử dụng:

 

(Mã của tác giả)

Kết luận:

 
Trong bài viết này, chúng tôi đã giới thiệu một phần nhỏ về thư viện PyPolars, bao gồm việc triển khai, sử dụng và so sánh số thời gian chuẩn của nó với Pandas cho một số thao tác cơ bản. Lưu ý rằng PyPolars hoạt động rất giống với Pandas và PyPolars là một thư viện hiệu quả về bộ nhớ vì bộ nhớ được hỗ trợ bởi nó là bất biến.

Người ta có thể đi qua tài liệu hướng dẫn để hiểu chi tiết về thư viện. Có nhiều thư viện mã nguồn mở khác có thể song song hóa các hoạt động của Pandas và tăng tốc quá trình. Đọc bài báo được đề cập dưới đây để biết 4 thư viện như vậy:

4 Thư viện có thể song song hóa hệ sinh thái Pandas hiện có
Phân phối khối lượng công việc Python bằng cách xử lý song song sử dụng các khuôn khổ này

 
Tài liệu tham khảo:

[1] Tài liệu Polars và kho lưu trữ GitHub: https://github.com/ritchie46/polars

 
Cảm ơn bạn đã đọc

 
Tiểu sử: Satyam Kumar là một Người đam mê Học máy & Lập trình viên. Satyam viết về Khoa học Dữ liệu và là Nhà văn hàng đầu về AI. Anh ấy đang tìm kiếm một sự nghiệp đầy thử thách với một tổ chức cung cấp cơ hội để tận dụng các kỹ năng và khả năng kỹ thuật của mình.

Nguyên. Đăng lại với sự cho phép.

Liên quan:

Nguồn: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Dấu thời gian:

Thêm từ Xe đẩy