python 保存二维数组到本地

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 或文本格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值