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 或文本格式