Bạn có thể sử dụng PyTables để tạo tệp Định dạng dữ liệu phân cấp (HDF) để lưu trữ dữ liệu. Điều này cung cấp một số thú vị tùy chọn trong bộ nhớ liên kết các đối tượng bạn đang làm việc với các tập tin đó sẽ được lưu trong
Dưới đây là một câu hỏi StackOverflow đó chứng tỏ làm thế nào để làm điều này:. "How to store a NumPy multidimensional array in PyTables."
Nếu bạn sẵn sàng làm việc với mảng của bạn như là một đối tượng Pandas DataFrame, bạn cũng có thể sử dụng giao diện Pandas để PyTables/HDF5, ví dụ:
import pandas
import numpy as np
a = np.ones((43200, 4000)) # Not recommended.
x = pandas.HDFStore("some_file.hdf")
x.append("a", pandas.DataFrame(a)) # <-- This will take a while.
x.close()
# Then later on...
my_data = pandas.HDFStore("some_file.hdf") # might also take a while
usable_a_copy = my_data["a"] # Be careful of the way changes to
# `usable_a_copy` affect the saved data.
copy_as_nparray = usable_a_copy.values
với các file kích thước này, bạn có thể xem xét liệu ứng dụng của bạn có thể được thực hiện với một thuật toán song song và có khả năng được áp dụng cho các tập hợp con của các mảng lớn chứ không phải hơn là cần phải tiêu thụ tất cả các mảng trước khi tiếp tục.
Bạn đã thử 'np.savetxt ('file.npy.gz')'? Nó sẽ mất nhiều thời gian hơn để tiết kiệm và sau đó tải (vì nén), nhưng nó sẽ làm giảm đáng kể kích thước của tập tin. – wflynny
@ Cảm ơn bạn đã trả lời, chỉ cần thử với np.savetxt ('file.npy.gz') và nó giảm kích thước tệp của tôi nhưng không thể tải lại dữ liệu. – user2766019
Bạn có chắc là bạn đã tải tệp có cùng phần mở rộng tệp mà bạn đã lưu không? 'np.loadtxt ('file.npy.gz')'. – wflynny