Hướng dẫn how do i save an array of data in python? - làm cách nào để lưu một mảng dữ liệu trong python?
Cập nhật lần cuối vào ngày 19 tháng 8 năm 2020 Show
Phát triển các mô hình học máy trong Python thường yêu cầu sử dụng các mảng numpy. Các mảng là các cấu trúc dữ liệu hiệu quả để làm việc với dữ liệu trong Python và các mô hình học máy như các mô hình trong thư viện Scikit-learn và các mô hình học tập sâu như trong Thư viện Keras, mong đợi dữ liệu đầu vào theo định dạng của các mảng Numpy và đưa ra dự đoán trong định dạng của mảng numpy. Như vậy, người ta thường cần lưu các mảng numpy vào tệp. Ví dụ: bạn có thể chuẩn bị dữ liệu của mình với các biến đổi như tỷ lệ và cần lưu nó vào tệp để sử dụng sau. Bạn cũng có thể sử dụng một mô hình để đưa ra dự đoán và cần lưu các dự đoán để tệp để sử dụng sau. Trong hướng dẫn này, bạn sẽ khám phá cách lưu các mảng numpy của bạn vào tệp. Sau khi hoàn thành hướng dẫn này, bạn sẽ biết:
Khởi động dự án của bạn với cuốn sách mới của tôi Machine Mastery với Python, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ. with my new book Machine Learning Mastery With Python, including step-by-step tutorials and the Python source code files for all examples. Bắt đầu nào. Làm thế nào để lưu một mảng numpy vào tệp cho máy học của Chris Combe, một số quyền được bảo lưu. Tổng quan hướng dẫnHướng dẫn này được chia thành ba phần; họ đang:
1. Lưu mảng Numpy vào tệp .csv (ASCII)Định dạng tệp phổ biến nhất để lưu trữ dữ liệu số trong các tệp là định dạng biến được phân tách bằng dấu phẩy hoặc viết tắt là CSV. Rất có thể là dữ liệu đào tạo và dữ liệu đầu vào của bạn cho các mô hình của bạn được lưu trữ trong các tệp CSV. Có thể thuận tiện để lưu dữ liệu vào các tệp CSV, chẳng hạn như dự đoán từ một mô hình. Bạn có thể lưu các mảng Numpy của mình vào các tệp CSV bằng hàm savetxt (). Hàm này lấy tên tệp và mảng làm đối số và lưu mảng vào định dạng CSV. Bạn cũng phải chỉ định dấu phân cách; Đây là ký tự được sử dụng để tách từng biến trong tệp, phổ biến nhất là dấu phẩy. Điều này có thể được đặt thông qua đối số của Delimiter. 1.1 Ví dụ về lưu một mảng numpy vào tệp CSVVí dụ dưới đây cho thấy cách lưu một mảng numpy duy nhất vào định dạng CSV.
Chạy ví dụ sẽ xác định một mảng numpy và lưu nó vào tệp ‘data.csv. Mảng có một hàng dữ liệu duy nhất với 10 cột. Chúng tôi hy vọng dữ liệu này sẽ được lưu vào tệp CSV dưới dạng một hàng dữ liệu duy nhất. Sau khi chạy ví dụ, chúng ta có thể kiểm tra nội dung của ‘data.csv. Chúng ta sẽ thấy những điều sau đây:
Chúng ta có thể thấy rằng dữ liệu được lưu chính xác dưới dạng một hàng duy nhất và các số điểm nổi trong mảng được lưu với độ chính xác đầy đủ. 1.2 Ví dụ về việc tải một mảng numpy từ tệp CSVChúng ta có thể tải dữ liệu này sau này dưới dạng mảng numpy bằng cách sử dụng hàm LoadText () và chỉ định tên tệp và cùng một dấu phân cách dấu phẩy. Ví dụ hoàn chỉnh được liệt kê dưới đây.
Chạy ví dụ tải dữ liệu từ tệp CSV và in nội dung, khớp với hàng duy nhất của chúng tôi với 10 cột được xác định trong ví dụ trước.
2. Lưu mảng numpy vào tệp .npy (nhị phân)Đôi khi chúng ta có rất nhiều dữ liệu trong các mảng Numpy mà chúng ta muốn tiết kiệm hiệu quả, nhưng chúng ta chỉ cần sử dụng trong một chương trình Python khác. Do đó, chúng ta có thể lưu các mảng numpy vào một định dạng nhị phân gốc hiệu quả để cả tiết kiệm và tải. Điều này là phổ biến cho dữ liệu đầu vào đã được chuẩn bị, chẳng hạn như dữ liệu được chuyển đổi, sẽ cần được sử dụng làm cơ sở để kiểm tra một loạt các mô hình học máy trong tương lai hoặc chạy nhiều thử nghiệm. Định dạng tệp .npy phù hợp với trường hợp sử dụng này và được gọi là định dạng đơn giản là định dạng. Điều này có thể đạt được bằng cách sử dụng hàm tiết kiệm () và chỉ định tên tệp và mảng sẽ được lưu. 2.1 Ví dụ về lưu một mảng numpy vào tệp NPYVí dụ dưới đây xác định mảng numpy hai chiều của chúng tôi và lưu nó vào tệp .npy.
Sau khi chạy ví dụ, bạn sẽ thấy một tệp mới trong thư mục có tên ‘data.npy. Bạn không thể kiểm tra nội dung của tệp này trực tiếp với trình soạn thảo văn bản của bạn vì nó ở định dạng nhị phân. 2.2 Ví dụ về việc tải một mảng numpy từ tệp NPYBạn có thể tải tệp này dưới dạng mảng numpy sau bằng hàm load (). Ví dụ hoàn chỉnh được liệt kê dưới đây.
Chạy ví dụ sẽ tải tệp và in nội dung, xác nhận rằng cả hai nó đã được tải chính xác và nội dung phù hợp với những gì chúng ta mong đợi trong cùng một định dạng hai chiều. 3. Lưu mảng numpy vào tệp .npz (nén)Đôi khi, chúng tôi chuẩn bị dữ liệu để mô hình hóa cần được sử dụng lại trên nhiều thử nghiệm, nhưng dữ liệu lớn. Đây có thể là các mảng numpy được xử lý trước như một kho văn bản (số nguyên) hoặc một bộ sưu tập dữ liệu hình ảnh được định dạng lại (pixel). Trong những trường hợp này, mong muốn cả hai lưu dữ liệu vào tệp, nhưng cũng ở định dạng nén. Điều này cho phép Gigabyte của dữ liệu được giảm xuống còn hàng trăm megabyte và cho phép dễ dàng truyền đến các máy chủ điện toán đám mây khác cho các hoạt động thuật toán dài. Định dạng tệp .npz phù hợp với trường hợp này và hỗ trợ phiên bản nén của định dạng tệp Numpy gốc. Hàm Numpy Savez_Compression () cho phép lưu nhiều mảng numpy được lưu vào một tệp .npz được nén. 3.1 Ví dụ về lưu một mảng numpy vào tệp NPZChúng ta có thể sử dụng chức năng này để lưu mảng numpy duy nhất của chúng ta vào một tệp nén. Ví dụ hoàn chỉnh được liệt kê dưới đây.
Sau khi chạy ví dụ, bạn sẽ thấy một tệp mới trong thư mục có tên ‘data.npy. Bạn không thể kiểm tra nội dung của tệp này trực tiếp với trình soạn thảo văn bản của bạn vì nó ở định dạng nhị phân. 2.2 Ví dụ về việc tải một mảng numpy từ tệp NPYBạn có thể tải tệp này dưới dạng mảng numpy sau bằng hàm load (). Ví dụ hoàn chỉnh được liệt kê dưới đây. # Tải mảng numpy từ tệp npy từ tải nhập không
Chạy ví dụ sẽ tải tệp và in nội dung, xác nhận rằng cả hai nó đã được tải chính xác và nội dung phù hợp với những gì chúng ta mong đợi trong cùng một định dạng hai chiều. 3. Lưu mảng numpy vào tệp .npz (nén)Đôi khi, chúng tôi chuẩn bị dữ liệu để mô hình hóa cần được sử dụng lại trên nhiều thử nghiệm, nhưng dữ liệu lớn. Đây có thể là các mảng numpy được xử lý trước như một kho văn bản (số nguyên) hoặc một bộ sưu tập dữ liệu hình ảnh được định dạng lại (pixel). Trong những trường hợp này, mong muốn cả hai lưu dữ liệu vào tệp, nhưng cũng ở định dạng nén.
3.1 Ví dụ về lưu một mảng numpy vào tệp NPZ
Chúng ta có thể tải tệp này sau bằng cách sử dụng cùng một hàm tải () từ phần trước.Trong trường hợp này, hàm Savez_compress () hỗ trợ lưu nhiều mảng vào một tệp. Do đó, hàm tải () có thể tải nhiều mảng. Các mảng được tải được trả về từ hàm load () trong một dict với các tên ‘ARR_0, cho mảng đầu tiên,‘ ARR_1, trong lần thứ hai, v.v.
# Trích xuất mảng đầu tiên Chạy ví dụ tải tệp numpy được nén chứa từ điển mảng, sau đó trích xuất mảng đầu tiên mà chúng tôi đã lưu (chúng tôi chỉ lưu một), sau đó in nội dung, xác nhận các giá trị và hình dạng của mảng khớp với những gì chúng tôi đã lưu trong địa điểm đầu tiên.Đọc thêmPhần này cung cấp nhiều tài nguyên hơn về chủ đề nếu bạn đang muốn đi sâu hơn. Bài viết Cách tải dữ liệu học máy trong Pythonself-study tutorials and end-to-end projects like: Giới thiệu nhẹ nhàng về các mảng numpy trong Python |