博客
关于我
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/

    你可能感兴趣的文章
    python logging basicconfig_python之logging.basicConfig
    查看>>
    Python logging模块使用
    查看>>
    python logging模块学习
    查看>>
    python mac地址_python中MAC地址打包问题
    查看>>
    python manage.py syncdb Unknown command: 'syncdb'问题解决方法
    查看>>
    Python map() 函数 和 numpy mean()函数
    查看>>
    Python Matplotlib Box并排绘制两个数据集
    查看>>
    Python Matplotlib 中如何用 plt.savefig 存储图片
    查看>>
    Python matplotlib 中更换画布背景颜色
    查看>>
    Python进阶03 模块
    查看>>
    python matplotlib简单使用
    查看>>
    Python mock Patch os.environ 和返回值
    查看>>
    Python mock 修补另一个函数调用的函数
    查看>>
    python mqtt 客户端实现
    查看>>
    Python Multiprocessing - 将类方法应用于对象列表
    查看>>
    Python multiprocessing.Queue 与 multiprocessing.manager().Queue()
    查看>>
    Python multiprocessing使用详解
    查看>>
    python mysql 基于 sqlalvhrmy_Python操作MySQL:pymysql和SQLAlchemy
    查看>>
    python mysql 布尔类型_python语言的基础学习:基本类型,函数,面向对象,模块,mysql数据库...
    查看>>
    Python NLP完整项目实战教程(1)
    查看>>