• Numpy文本读写:loadtxt,savetxt,genfromtxt



    numpy中为文本的输入输出提供了一组对偶函数,即 loadtxtsavetxt

    savetxt

    考虑到大家手里没有合适的用于学习的txt文件,所以先介绍savetxt,其参数入口如下

    savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None)
    
    • 1

    其中,fnameX为必选参数,分别表示文件路径和将要存储的数组,其他参数含义如下

    • fmt 存储格式
    • delimiter 分隔符
    • newline 换行符
    • header 文件头部添加的内容
    • footer 文件尾部添加的内容
    • comments 注释
    • encoding 编码方式

    其中,fmt用于格式化存储数组数据,其基本形式与C语言或者Python进行格式化字符串的形式是相同的。例如%f表示存储为浮点型%.2f表示存储的浮点型值保留两位小数。如果fmt中只有一个%,则对所有列采取相同的处理方法,否则每一列按照不同的处理方法。具体情况可见如下案例

    import numpy as np
    x = np.random.rand(3,5)
    np.savetxt("test.txt", x, fmt="%.2f", header='a b c d e')
    
    • 1
    • 2
    • 3

    保存结果为


    # a b c d e
    0.14 0.65 0.13 0.44 0.35
    0.16 0.92 0.18 0.76 0.92
    0.80 0.07 0.83 0.52 0.37


    即每一列都保留了两位有效数字,同时文件开头也添加了相应的header,并且添加了comments。其分隔符为空格,换行符为\n。由于fotterheader作用方式相同,所以下面就不再演示了。

    如果对每一列设定不同的fmt,则效果为

    np.savetxt("test1.txt", x, fmt="%.2f %.3f %.4f, %e, %.5f")
    
    • 1

    保存结果如下,可见的确保留了相应的小数位数。


    0.14 0.649 0.1332, 4.447176e-01, 0.35217
    0.16 0.917 0.1831, 7.607057e-01, 0.92109
    0.80 0.074 0.8343, 5.217247e-01, 0.36754


    loadtxt

    loadtxtsavetxt的对偶函数,功能是读取函数。

    numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None, *, like=None)
    
    • 1

    其中,fname, comments, delimiter, encoding这四个参数与savetxt中的含义相同,只在读写过程中有微小差异,参数含义为

    • dtype 读取后的数据类型
    • comments 注释标识符,加载时会自动忽略注释标识符后的字符串
    • delimiter 分割符,为整数时表示元素最大宽度
    • converters 字典或函数,用以转化数据格式
    • skiprows 忽略行数
    • usecols 使用的列号
    • unpack 读取后转置
    • ndmin 返回数组的最小维度
    • max_rowsskiprows后面读取的最多行数
    • like 读取后的数组格式与like数组相同

    以刚刚存储的test.txt为例,

    >>> np.loadtxt("test.txt")
    array([[0.14, 0.65, 0.13, 0.44, 0.35],
           [0.16, 0.92, 0.18, 0.76, 0.92],
           [0.8 , 0.07, 0.83, 0.52, 0.37]])
    
    • 1
    • 2
    • 3
    • 4

    genfromtxt

    genfromtxt(fname,dtype,comments,delimiter,skipd_header,skip_fonter,converters,missing_values,filling_values,usecols,names, autostrip,**kwarg)
    
    • 1

    其中,大部分参数与loadtxt中含义相同,其他参数的含义如下。

    • skip_header 跳过文件头部的字符行数
    • skip_footer 跳过文件尾部字符串行数
    • missing_values 指定数组中忽略的值
    • filling_values 指定某个值用于替代忽略值
    • autostrip 为True时可自动去除变量首尾的空格
  • 相关阅读:
    【最新案例】网络智能类SCI&EI,极速审稿,录用到检索仅2个月零9天
    【vertx系列教程】(一)vertx实现tcp通信,tcp服务端搭建,基于springboot项目
    STM32H743的FDCAN使用方法(2):STM32CubeMX初始化代码修改
    Arcade官方教程解析 3 Add User Control
    实例分割-二阶段模型-RCNN系列介绍
    探索 Sa-Token (二) 登录认证、权限认证
    整合JVM-SANDBOX与VMTOOL,实现支持OGNL的增强自定义MOCK
    【无标题】
    tiup uninstall
    谷歌创新框架:从非结构化数据,实现多模态学习
  • 原文地址:https://blog.csdn.net/m0_37816922/article/details/128197489