博客
关于我
Python numpy数据的保存和读取
阅读量:798 次
发布时间:2023-03-06

本文共 1714 字,大约阅读时间需要 5 分钟。

在科学计算过程中,数据的保存与加载是日常工作中常需完成的重要任务。在Matlab中,save和load函数提供了便利的数据存储与读取功能。Python中,numpy库提供了save和load函数,能够以.npy格式存储和读取数据;此外,scipy库的savemat和loadmat函数则允许将数据以.mat格式存储,并且能够与Matlab或Octave进行数据互动。

numpy.save()功能说明

numpy.save()用于将numpy数组以二进制文件格式保存为.npy文件。该函数接受文件路径或文件对象作为第一个参数,以及要保存的数组作为第二个参数。以下是该函数的详细说明:

  • 参数说明

    • file:文件路径、字符串或Path对象。如果是文件对象,文件名将不变;如果是字符串或Path,会自动附加.npy扩展名。
    • arr:要保存的数组数据。
    • allow_pickle:布尔值,允许通过pickling方式保存对象数组,默认为True。
    • fix_imports:布尔值,用于在Python 3中确保对象数组在Python 2中能被正确提取。
  • 示例代码

    import numpy as npa = np.mat('1,2,3;4,5,6')  # 创建矩阵ab = np.array([[1, 2, 3], [4, 5, 6]])  # 创建数组bnp.save('a.npy', a)  # 保存矩阵a为a.npynp.save('b.npy', b)  # 保存数组b为b.npy
  • 读取文件

    data_a = np.load('a.npy')data_b = np.load('b.npy')print('data_a\n', data_a, '\n类型:', type(data_a))print('data_b\n', data_a, '\n类型:', type(data_b))

    输出结果显示data_a和data_b均为numpy数组,类型一致。

  • 同时保存多个数组

    为了在同一个文件中同时保存多个数组,可以使用numpy.savez()函数。该函数允许将多个数组作为字典形式保存到.npz文件中。

    import numpy as npnp.savez('ab.npz', k_a=a, k_b=b)  # 同时保存a和b到ab.npz文件c = np.load('ab.npz')print(c['k_a'])  # 输出k_a的值print(c['k_b'])  # 输出k_b的值

    此时c是一个字典,需要通过键名访问相应的数组。

    scipy.io.savemat()和loadmat()功能说明

    scipy.io模块提供了savemat和loadmat函数,用于将numpy数组以Matlab矩阵格式存储为.mat文件,并支持与Matlab/Octave互动。

  • savemat函数

    import numpy as npfrom scipy import ioa = np.mat('1,2,3;4,5,6')  # 创建矩阵ab = np.array([[1, 1, 1], [2, 2, 2]])  # 创建数组bio.savemat('a.mat', {'matrix': a})  # 保存矩阵a到a.mat文件io.savemat('b.mat', {'array': b})  # 保存数组b到b.mat文件

    生成的a.mat和b.mat文件可以在Matlab中被成功读取。

  • loadmat函数

    c = io.loadmat('a.mat')print(type(c))  # 输出字典类型print(c)  # 查看字典内容

    读取的c是一个字典,包含MATLAB生成的文件信息。

  • 访问矩阵数据

    print(c['a_matrix'])  # 访问矩阵数据

    例如,运行上述代码后,c['a_matrix']会输出矩阵[[1,2,3],[4,5,6]]。

  • 通过以上方法,Python能够方便地将数据以多种格式保存,并支持与Matlab/Octave的数据互动。这使得数据的共享和转换更加便捷。

    转载地址:http://roafk.baihongyu.com/

    你可能感兴趣的文章
    pycharm怎么支持WPS?
    查看>>
    pycharm打印不全问题
    查看>>
    pycharm提示This inspection detects instance attribute definition outside __init__ method
    查看>>
    pycharm搭建spark环境
    查看>>
    pycharm无法导入本地模块问题
    查看>>
    PyCharm更换pip源为国内源、模块安装、PyCharm依赖包导入导出教程
    查看>>
    Pycharm没有找到manage repositories按钮解决方案
    查看>>
    PyCharm点击设置没反应,无法进行设置
    查看>>
    pycharm的安装配置和简单使用
    查看>>
    pycharm的环境管理-ChatGPT4o作答
    查看>>
    pycharm社区版不能使用conda
    查看>>
    Pycharm终端中conda无法切换到虚拟环境的解决方法(两种方案)
    查看>>
    pycharm连接sqlite
    查看>>
    Pycharm那些隐藏的实用小技巧,yyds!
    查看>>
    PyCharm配置SSH和SFTP远程连接服务器
    查看>>
    Pycharm隐藏的实用小技巧!建议收藏
    查看>>
    PyChord 项目常见问题解决方案
    查看>>
    pydoc使用
    查看>>
    pyechart
    查看>>
    pyecharts中管理工具按钮以及修改图表主题
    查看>>