博客
关于我
Python numpy数据的保存和读取
阅读量:804 次
发布时间: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/

    你可能感兴趣的文章
    python Workbook 表格宽度
    查看>>
    python write报错a byte-like object is required.not str
    查看>>
    PYTHON调用大模型实现图片生成
    查看>>
    python yaml.dump 缩进错误
    查看>>
    Python yield generator
    查看>>
    Python yield 使用浅析
    查看>>
    Python yield解析:深入理解生成器的魔力
    查看>>
    Python You are using pip version 10.0.1, however version 19.3.1 is available.
    查看>>
    python zipfile模块学习笔记(一)
    查看>>
    Python zip函数 详解(全)
    查看>>
    Python \r\n与\n的转换
    查看>>
    python __new__中单例的作用
    查看>>
    python | aiofiles,一个超酷的 Python 库!
    查看>>
    python | akshare,一个超强的 开源Python 金融数据接口库!
    查看>>
    python | alabaster,一个强大的 关于alabaster 主题 Python 库!
    查看>>
    python | algorithms,一个超赞的 集合常用算法的Python 库!
    查看>>
    python调用jpype 报错:OSError JVM is already started和JVM cannot be restarted
    查看>>
    python | authlib,一个强大的 Python 库!
    查看>>
    python | awswrangler,一个高效的 Python 库!
    查看>>
    python | bashplotlib,一个有趣的Python库!
    查看>>