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:

  • Cách lưu các mảng numpy vào các tệp được định dạng CSV.
  • Cách lưu các mảng numpy vào các tệp được định dạng NPY.
  • Cách lưu các mảng numpy vào các tệp được định dạng NPZ được nén.

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.

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?

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.
Photo by Chris Combe, some rights reserved.

Tổng quan hướng dẫn

Hướ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)
  2. Lưu mảng numpy vào tệp .npy (nhị phân)
  3. Lưu mảng numpy vào tệp .npz (nén)

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 CSV

Ví 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.

# Lưu mảng Numpy dưới dạng tệp CSV

từ nhập khẩu numpy asarraynumpy import asarray

từ Savetxt nhập khẩu Numpynumpy import savetxt

# Xác định dữ liệu

data=asarray([[0,1,2,3,4,5,6,7,8,9]])=asarray([[0,1, 2,3,4,5,6,7,8,9]])

# Lưu vào tệp CSV

savetxt('data.csv',data,delimiter=',')('data.csv', data,delimiter=',')

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:

0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.000000000000000000e+00,8.000000000000000000e+00,9.000000000000000000e+00

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 CSV

Chú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.

# Tải mảng Numpy từ tệp CSV

từ Numpy Nhập LOADTXTnumpy import loadtxt

# Tải mảng

data=loadtxt('data.csv',delimiter=',')=loadtxt('data.csv',delimiter=',')

# In mảng

print(data)(data)

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.

[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

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 NPY

Ví 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.

# lưu mảng numpy dưới dạng tệp npy

từ nhập khẩu numpy asarraynumpy import asarray

từ tiết kiệm nhập khẩu Numpynumpy import save

# Xác định dữ liệu

data=asarray([[0,1,2,3,4,5,6,7,8,9]])=asarray([[0,1,2, 3,4,5,6,7,8,9]])

# Lưu vào tệp NPY

save('data.npy',data)('data.npy',data)

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 NPY

Bạ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ôngnumpy import load

# Tải mảng

data=load('data.npy')=load('data.npy')

# In mảng

print(data)(data)

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 NPZ

Chú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.

# Tải mảng numpy từ tệp npy

từ nhập khẩu numpy asarraynumpy import asarray

từ tải nhập khôngnumpy import savez_compressed

# Xác định dữ liệu

data=asarray([[0,1,2,3,4,5,6,7,8,9]])=asarray([[0,1, 2,3,4,5,6,7,8,9]])

# Lưu vào tệp NPY

savez_compressed('data.npz',data)('data.npz', data)

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 NPY

Bạ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

# Tải mảng

từ tải nhập khôngnumpy import load

# Tải mảng

dict_data=load('data.npz')=load('data.npz')

# In mảng

data=dict_data['arr_0']=dict_data['arr_0']

# In mảng

print(data)(data)

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 NPZ

  • Chú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.
  • # lưu mảng numpy dưới dạng tệp npz
  • từ nhập khẩu numpy savez_compress
  • Chạy ví dụ xác định mảng và lưu nó vào một tệp ở định dạng numpy nén với tên ‘data.npz.
  • Như với định dạng .npy, chúng tôi không thể kiểm tra nội dung của tệp đã lưu với trình chỉnh sửa văn bản vì định dạng tệp là nhị phân.
  • 3.2 Ví dụ về việc tải một mảng numpy từ 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.

  • Ví dụ hoàn chỉnh về việc tải mảng duy nhất của chúng tôi được liệt kê dưới đây.
  • # Tải mảng numpy từ tệp npz
  • # tải chỉ tên mảng

# Trích xuất mảng đầu tiên
Ask your questions in the comments below and I will do my best to answer.

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.

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 thêm

Phầ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
Machine Learning Mastery With Python

Cách tải dữ liệu học máy trong Pythonself-study tutorials and end-to-end projects like:
Loading data, visualization, modeling, tuning, and much more...

Giới thiệu nhẹ nhàng về các mảng numpy trong Python
Your Own Projects

Cách lập chỉ mục, cắt và định hình lại các mảng numpy cho học máy

API

Làm cách nào để lưu một mảng trong tệp văn bản trong Python?

Hãy cho chúng tôi xem cách lưu một mảng numpy vào tệp văn bản.Tạo một tệp văn bản bằng cách sử dụng hàm Open () được xây dựng và sau đó chuyển đổi mảng thành chuỗi và ghi nó vào tệp văn bản bằng hàm write ().Cuối cùng đóng tệp bằng hàm đóng ().

Làm thế nào để bạn tạo một mảng trong Python?

Trong Python, bạn có thể tạo các kiểu dữ liệu mới, được gọi là mảng bằng gói Numpy.Các mảng Numpy được tối ưu hóa cho các phân tích số và chỉ chứa một loại dữ liệu duy nhất.Trước tiên, bạn nhập Numpy và sau đó sử dụng hàm mảng () để tạo một mảng.Hàm mảng () lấy một danh sách làm đầu vào.You first import NumPy and then use the array() function to create an array. The array() function takes a list as an input.

Làm cách nào để lưu một mảng numpy dưới dạng tệp CSV?

SaveText () Phương thức này được sử dụng để lưu một mảng vào tệp văn bản.Tạo một mảng sau đó lưu nó dưới dạng tệp CSV. This method is used to save an array to a text file. Create an array then save it as a CSV file.

Làm cách nào để lưu một mảng vào NPY?

Làm thế nào để lưu một mảng numpy trong Python..
an_array = np.Mảng ([[1, 2, 3], [4, 5, 6]]).
NP.Lưu ("Sample.npy", an_array).
Loaded_Array = NP.Tải ("Sample.npy").
print(loaded_array).