Đây thực sự là khá liên quan đến một câu trả lời tôi đã cung cấp liên quan đến các file csv đọc/ghi w/NumPy:
Python: how to do basic data manipulation like in R?
Bạn nên chắc chắn sử dụng NumPy, không có vấn đề gì khác! Sự dễ dàng lập chỉ mục, vv vượt xa chi phí của sự phụ thuộc bổ sung (tốt, tôi nghĩ vậy). PyTables, tất nhiên, cũng phụ thuộc vào quá nhiều.
Nếu không, điều đó thực sự tùy thuộc vào ứng dụng, phần cứng và đối tượng của bạn. Tôi nghi ngờ rằng đọc trong các tập tin csv của kích thước bạn đang nói về sẽ không quan trọng về tốc độ so với PyTables. Nhưng nếu đó là một mối quan tâm, hãy viết một điểm chuẩn! Đọc và ghi một số dữ liệu ngẫu nhiên 100 lần. Hoặc, nếu thời gian đọc quan trọng hơn, hãy viết một lần, đọc 100 lần, v.v.
Tôi nghi ngờ rằng PyTables sẽ hoạt động tốt hơn SQL. SQL sẽ đá trên các truy vấn phức tạp nhiều bảng (đặc biệt là nếu bạn làm những điều tương tự thường xuyên), nhưng ngay cả trên bảng đơn (được gọi là "không chuẩn hóa") bảng, pytables là khó để đánh bại về tốc độ. Tôi không thể tìm thấy một tài liệu tham khảo cho việc này off-hand, nhưng bạn có thể đào một cái gì đó lên nếu bạn khai thác các liên kết ở đây:
http://www.pytables.org/moin/HowToUse#HintsforSQLusers
Tôi đoán thực hiện hiệu suất cho bạn trong giai đoạn này sẽ nhợt nhạt so với hiệu suất của coder. Vì vậy, trên hết, hãy chọn thứ gì đó có ý nghĩa nhất đối với bạn!
Các điểm khác:
Giống như với SQL, PyTables có tính năng hoàn tác. Tệp CSV sẽ không có điều này, nhưng bạn có thể giữ chúng trong điều khiển phiên bản và bạn VCS không cần phải quá thông minh (tệp CSV là văn bản).
Trên ghi chú liên quan, tệp CSV sẽ lớn hơn nhiều so với định dạng nhị phân (bạn chắc chắn có thể viết các bài kiểm tra của riêng mình cho quá này).
Điều này có thể phụ thuộc vào những gì bạn đang làm với dữ liệu - tức là bạn định nghĩa sự tiện lợi như thế nào. Bạn có 1. Bạn muốn xem dữ liệu với một trình soạn thảo trực quan tốt bất cứ khi nào bạn muốn 2. Có thể kiểm tra dữ liệu một lần trực quan và sau đó chuyển nó vào một số chương trình khác? Nếu bạn muốn đầu tiên và cần chức năng đó để 'xem' dữ liệu thì định dạng csv có lẽ không phải là một lựa chọn tồi. Cho 2, pytables có lẽ là tốt. Trong cả hai trường hợp, dữ liệu của bạn nhỏ, tại sao không lưu cả hai? – Marm0t