You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中是否存在类似Matlab的save()函数的对应功能?

Python实现类似Matlab一次性读写多组数组的方案

目前主流有三类实现方式,可根据使用场景选择:

方案1:NumPy原生savez/load(最适配纯数组场景)

如果你的输出都是NumPy数组,这是最接近Matlab使用习惯的方案,无需额外依赖。

保存示例

import numpy as np

# 你代码输出的多个数组
arr_a = np.array([1, 2, 3, 4])
arr_b = np.random.rand(5, 5)
arr_c = np.arange(10).reshape(2, 5)

# 一次性保存所有数组,可自定义键名方便后续读取
np.savez('my_output.npz', arr_a=arr_a, arr_b=arr_b, arr_c=arr_c)

读取示例

import numpy as np

# 一次性加载全部数据
loaded_data = np.load('my_output.npz')

# 按存储时的键名读取对应数组
print(loaded_data['arr_a'])
print(loaded_data['arr_b'])

特点

  • 逻辑和Matlab的save/load完全一致,加载后得到类字典结构,可直接遍历所有存储的数组
  • 无需额外安装依赖,只要安装了NumPy即可使用
  • 需压缩节省存储空间时,将np.savez替换为np.savez_compressed即可

方案2:Pickle序列化(支持所有Python对象)

如果除了数组外你还需要同时保存其他Python对象(比如列表、字典、自定义类实例),可以用Python原生的pickle模块。

保存示例

import pickle
import numpy as np

arr_a = np.array([1, 2, 3, 4])
arr_b = np.random.rand(5, 5)
other_data = "补充说明文字"

# 可将所有数据存入字典后一次性序列化
save_content = {
    "arr_a": arr_a,
    "arr_b": arr_b,
    "other": other_data
}

with open('my_output.pkl', 'wb') as f:
    pickle.dump(save_content, f)

读取示例

import pickle

with open('my_output.pkl', 'rb') as f:
    loaded_data = pickle.load(f)

print(loaded_data['arr_a'])
print(loaded_data['other'])

特点

  • 通用性极强,支持存储几乎所有Python对象
  • 仅支持Python生态内读写,无法跨语言使用
  • 安全提示:不要加载来源不明的pkl文件,存在恶意代码执行风险

方案3:HDF5格式(适合超大容量数据)

如果你的数组体积达到GB甚至TB级,推荐使用HDF5格式存储,支持分块读写、流式加载。

保存示例

import h5py
import numpy as np

arr_a = np.array([1, 2, 3, 4])
arr_b = np.random.rand(10000, 10000) # 超大数组

with h5py.File('my_output.h5', 'w') as f:
    f.create_dataset('arr_a', data=arr_a)
    f.create_dataset('arr_b', data=arr_b, compression='gzip') # 开启压缩

读取示例

import h5py

with h5py.File('my_output.h5', 'r') as f:
    # 支持只读取数组的部分片段,无需将全量数据加载到内存
    arr_b_part = f['arr_b'][:100, :100]
    print(arr_b_part)

特点

  • 支持超大容量数据存储,支持分块读写、压缩,内存占用极低
  • 需要额外安装h5py依赖
  • 支持跨语言读写,Matlab、R等主流科研工具都可直接读取HDF5格式文件

内容的提问来源于stack exchange,提问作者Dimitri_896

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:27:04