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 json
arr = [[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 np
arr = 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 或文本格式
7954

被折叠的 条评论
为什么被折叠?



