Python中保存二維數組有多種方法,以下是常用的幾種方式:
1. 使用NumPy(推薦)
import numpy as np# 創建二維數組
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 保存為.npy文件(NumPy專用格式)
np.save('array.npy', arr)# 保存為.npz文件(壓縮格式)
np.savez('array.npz', data=arr)# 保存為文本文件
np.savetxt('array.txt', arr, delimiter=',')# 讀取
loaded_arr = np.load('array.npy')
loaded_npz = np.load('array.npz')['data']
loaded_txt = np.loadtxt('array.txt', delimiter=',')
2. 使用Pickle(適用于任何Python對象)
import pickle# 二維列表
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]# 保存
with open('array.pkl', 'wb') as f:pickle.dump(arr, f)# 讀取
with open('array.pkl', 'rb') as f:loaded_arr = pickle.load(f)
3. 使用CSV格式
import csv
import pandas as pd# 方法1:使用csv模塊
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]with open('array.csv', 'w', newline='') as f:writer = csv.writer(f)writer.writerows(arr)# 讀取
with open('array.csv', 'r') as f:reader = csv.reader(f)loaded_arr = [list(map(int, row)) for row in reader]# 方法2:使用pandas
df = pd.DataFrame(arr)
df.to_csv('array_pandas.csv', index=False, header=False)
loaded_df = pd.read_csv('array_pandas.csv', header=None).values
4. 使用JSON(適用于數值數據)
import jsonarr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]# 保存
with open('array.json', 'w') as f:json.dump(arr, f)# 讀取
with open('array.json', 'r') as f:loaded_arr = json.load(f)
5. 使用HDF5(適用于大型數據)
import h5py
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 保存
with h5py.File('array.h5', 'w') as f:f.create_dataset('data', data=arr)# 讀取
with h5py.File('array.h5', 'r') as f:loaded_arr = f['data'][:]
選擇建議
- NumPy數組?→ 使用?
np.save()
?或?np.savez()
- 大型數據?→ 使用 HDF5 或 NumPy壓縮格式
- 需要跨平臺兼容?→ 使用 CSV 或 JSON
- Python對象?→ 使用 Pickle
- 需要人類可讀?→ 使用 CSV 或文本格式