2016-03-06 17 views
6

Tại sao chúng ta sử dụng mảng numpy thay cho mảng đơn giản trong python? Sự khác biệt chính giữa chúng là gì?Sự khác nhau giữa mảng NumPy và mảng python đơn giản là gì?

+4

Bạn có ý nghĩa gì với mảng? Bạn có thực sự có nghĩa là [mảng] (https://docs.python.org/3/library/array.html) hoặc bạn muốn nói 'list' (' [1, 2, 3] 'là một danh sách, không một mảng)? –

+2

Nếu bạn thực sự có nghĩa là mảng, vui lòng làm rõ. – jonrsharpe

Trả lời

2

mảng cố định là mảng được nhập, mảng trong bộ nhớ lưu trữ một số được đóng gói đồng nhất, có mật độ dày đặc.

Danh sách Python là một danh sách không đồng nhất, danh sách trong bộ nhớ lưu trữ các tham chiếu đến các đối tượng chứ không phải là chính số đó.

Điều này có nghĩa là danh sách Python yêu cầu dereferencing một con trỏ mỗi lần mã cần truy cập vào số. Trong khi mảng numpy có thể được xử lý trực tiếp bởi các hoạt động vectơ cục bộ, điều này làm cho các hoạt động này nhanh hơn nhiều so với bất kỳ thứ gì bạn có thể mã hóa với danh sách.

Hạn chế của mảng numpy là nếu bạn cần truy cập các mục đơn lẻ trong mảng, cần phải bỏ hộp/bỏ hộp số thành đối tượng số python, có thể làm chậm trong một số trường hợp; và nó không thể chứa dữ liệu không đồng nhất.

+2

Điều này đúng với danh sách * *, nhưng không phải của một * mảng *, cũng tồn tại trong thư viện chuẩn. – jonrsharpe

Các vấn đề liên quan