Trong chương trình của tôi, tôi đang làm việc với nhiều mảng có kích thước khác nhau. Tôi cần lưu trữ chúng vào các tệp XML để sử dụng sau này. Tôi đã không viết chúng vào các tệp nhị phân vì vậy tôi có tất cả dữ liệu của tôi ở một nơi (tệp XML) và không phân tán qua 200 tệp.Lưu trữ và tải các mảng có nhiều mảng như các tập tin
Vì vậy, tôi đã cố gắng sử dụng phương thức array_str() của numpy để chuyển đổi một mảng thành một Chuỗi. Kết quả XML trông giống như sau:
-<Test date="2013-07-10-17:19">
<Neurons>5</Neurons>
<Errors>[7.7642140551985428e-06, 7.7639131137987232e-06]</Errors>
<Iterations>5000</Iterations>
<Weights1>[[ 0.99845902 -0.70780512 0.26981375 -0.6077122 0.09639695] [ 0.61856711 -0.74684913 0.20099992 0.99725171 -0.41826754] [ 0.79964397 0.56620812 -0.64055346 -0.50572793 -0.50100635]]</Weights1>
<Weights2>[[-0.1851452 -0.22036027] [ 0.19293429 -0.1374252 ] [-0.27638478 -0.38660974] [ 0.30441414 -0.01531598] [-0.02478953 0.01823584]]</Weights2>
</Test>
Trọng số là giá trị tôi muốn lưu trữ. Bây giờ vấn đề là phương thức fromstring() của numpy không thể tải lại những thứ này ... Tôi nhận được "ValueError: kích thước chuỗi phải là bội số của kích thước phần tử"
Tôi đã viết chúng với "np.array_str (w1) "và cố gắng đọc chúng với" np.fromstring (w_str1) ". Rõ ràng kết quả chỉ là mảng 1D ngay cả khi nó hoạt động, vì vậy tôi phải khôi phục lại hình dạng theo cách thủ công. Ugh, đó là một nỗi đau vì tôi cũng sẽ phải cất giữ nó bằng cách nào đó.
Cách tốt nhất để làm điều này đúng cách là gì? Tốt nhất là một trong đó cũng tiết kiệm hình dạng mảng và datatype của tôi mà không cần vệ sinh bằng tay cho mọi điều nhỏ.
Cảm ơn nó không chính xác những gì tôi nghĩ đến (điều này vẫn tạo ra hàng tấn tệp bên ngoài), nhưng giải pháp này cực kỳ đơn giản ít nhất. Tôi có thể liên kết các tệp npz với dữ liệu XML của mình bằng cách sử dụng ngày tháng làm tên tệp. – user2323596
Ít nhất ở đây bạn có thể lưu trữ nhiều mảng chỉ trong một tệp và quyền truy cập có thể được thực hiện sau bằng cách sử dụng các phím từ điển làm ngày, ví dụ: 'np.savez_compressed ('all.npz', d2013_12_29 = a, d2013_12_30 = b , d2013_12_31 = c) ', bạn có thể bao gồm nhiều ngày như bạn muốn ở đây ... –