- vừa được xem lúc

Polars & Jupyter Notebook - Cách tổ chức bộ nhớ và Cách sử dụng

0 0 1

Người đăng: RustDEV VietNam

Theo Viblo Asia

pola-rs sử dụng kiến trúc bộ nhớ của Apche Arrow, rất khác với panda viết bằng Python và tất nhiên là tốc độ cao hơn rất nhiều so với panda. pola-rs cũng có các DataFrame là đối tượng chính mà chúng ta thường xuyên làm việc trên đó.

Các DataFrame có cấu trúc 2D dạng bảng với hàng và cột. Bên trong, về bản chất nó là một véc-tơ các Series, với mỗi Series là một cột. Như vậy, dễ thấy có một ràng buộc ở đây là tất cả các Series hay cột trong cùng một DataFrame bắt buộc phải có độ dài giống nhau.

Các Series trong polars lại là một mảng 1D có tên định danh và chứa các giá trị có cùng một kiểu dữ liệu (ví dụ i32, f64, v.v.). Thực ra nó là một lớp bao trừu tượng xung quanh các giá trị có kiểu ChunkedArray để thuận tiện hơn cho việc lập trình. ChunkedArray<T> là cốt lõi của Series.

Trong các ChunkedArray, thay vì lưu trữ tất cả dữ liệu cột trong một khối bộ nhớ lớn duy nhất, nó sẽ lưu một danh sách các phần nhỏ hơn, được xắp sếp liên tục, mỗi phần như vậy được gọi là một "chunk" và mỗi "chunk" lại thực chất là một Array. Có thể nói ChunkedArray là một véc-tơ của các Array kiểu Vec<Box<dyn Array>>.

Vậy tại sao lại tổ chức các DataFrame như vậy? Tại sao lại tổ chức thành các "chunk"?

Để có thể hiểu hơn về cách polars tổ chức bộ nhớ cho công tác phân tích xử lý dữ liệu lớn, có lẽ sẽ tốt hơn nếu chúng ta tự mình trải nghiệm từng bước từng bước một qua các video hướng dẫn cùng các ví dụ thực tế kèm diễn giải. Các bạn hãy xem video thứ hai trong chuỗi video về polars trên kênh Youtube RustDEV Vietnam: #0036 - Phân tích dữ liệu với polars (Phần 02)”

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chuyện cái comment

Chuyện cái comment. Chuyện rằng, có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm.

0 0 43

- vừa được xem lúc

Đừng đánh nhau với borrow checker

Đừng đánh nhau với borrow checker. TL;DR: Đừng bao giờ đánh nhau với borrow checker, nó được sinh ra để bạn phải phục tùng nó .

0 0 40

- vừa được xem lúc

Chuyện biểu diễn ma trận trên máy tính

Chuyện biểu diễn ma trận trên máy tính. Cách đây mấy hôm mình có share cái screenshot trên Facebook, khoe linh tinh vụ mình đang viết lại cái CHIP-8 emulator bằng Rust.

0 0 55

- vừa được xem lúc

Rust và Lập trình Web

Rust và Lập trình Web. Bài viết được dịch lại từ bản gốc "Rust for the Web" đăng tại phiên bản blog tiếng Anh của mình.

0 0 48

- vừa được xem lúc

Viết ứng dụng đọc tin HackerNews bằng Rust

Viết ứng dụng đọc tin HackerNews bằng Rust. Dạo này mình toàn viết bài linh tinh, lâu rồi chưa thấy viết bài kĩ thuật nào mới nên hôm nay mình viết trở lại, mất công các bạn lại bảo mình không biết co

0 0 36

- vừa được xem lúc

Cài đặt Rust trên Arch Linux

Cài đặt Rust trên Arch Linux. Việc cài đặt Rust trên môi trường Arch Linux khá là đơn giản.

0 0 53