• Numpy中的loadtxt、load、fromfile方法读取数据


    Numpy读取文件的3中方法:loadtxt、load、fromfile。

    方法 描述 返回数据
    loadtxt 读取txt文本 数组
    load 读取Numpy专用的二进制数据,读取从npy、npz、pickled文件加载数组或pickled对象 数组、元组、字典等
    fromfile 简单的文本、二进制数 数据


    1. loadtxt

    loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
    

    参数:

    fname:指定文件名称或字符串。支持压缩文件,包括gz、bz格式。

    dtype:数据类型。 默认float。

    comments:字符串或字符串组成的列表。表示注释字符集开始的标志,默认为#。

    delimiter:字符串。分隔符。

    converters:字典。将特定列的数据转换为字典中对应的函数的浮点型数据。例如将空值转换为0,默认为空。

    skiprows:跳过特定行数据。例如跳过前1行(可能是标题或注释)。默认为0。

    usecols:元组。用来指定要读取数据的列,第一列为0。例如(1, 3, 5),默认为空。

    unpack:布尔型。指定是否转置数组,如果为真则转置,默认为False。

    ndmin:整数型。指定返回的数组至少包含特定维度的数组。值域为0、1、2,默认为0。

    返回:从文件中读取的数组。

    示例数据如下:
    image

    import numpy as np
    file_name = 'numpy_data.txt'
    data = np.loadtxt(file_name, dtype='float32', delimiter=' ')
    print(data)
    

    image


    2. load

    load方法读取Numpy专用的二进制数据文件,从npy、npz、pickled文件加载数组或pickled对象,该文件通常基于Numpy的save或savez等方法产生。

    load(file, mmap_model=None, allow_pickle=True, fix_import=True, encoding='ASCII')
    

    参数:

    file:类文件对象或字符串格式。类文件对象需要支持seek()和read()方法。

    mmap_mode:内存映射模式。值域None。‘r+’,‘r’,'w+',‘c’。

    allow_pickle:布尔型。决定是否加载存储在npy文件的pickled对象数组,默认为True。

    fix_imports:布尔型。如果为True,pickle尝试将旧的Python 2名称映射到 Python3中并使用新的名称。仅在Python2生成的pickled文件加载Python3时才有用,默认值True.

    encoding:字符串。决定读取Python 2 字符串时使用何种编码。

    返回:从数据文件中读取的数组、元组、字典等。

    示例数据如下:

    import numpy as np
    write_data = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
    np.save('load_data', write_data)		# 保存为npy数据文件
    read_data = np.load('load_data.npy')	# 读取npy文件
    print(read_data)
    

    image


    3. fromfile

    Numpy的fromfile方法可以读取简单的文本文件以及二进制数据。

    该方法读取的数据来源Numpy的tofile方法。即通过tofile()将数据保存为二进制文件。

    fromfile(file, dtype=float, count=-1, sep='')
    

    参数:

    file:文件或字符串

    dtype:数据类型。注意数据类型与文件存储的类型一致。

    count:整数型。读取数据的数量,-1表示读取所有数据。

    sep:字符串。如果file是一个文本文件,那么该值就是数据间的分隔符。如果为空("")则意味着file是一个二进制文件,多个空格的话按照一个空格处理。

    返回:从文件中读取的数据。

    image

    import numpy as np
    file_name = 'numpy_data.txt'
    data = np.loadtxt(file_name, dtype='float32', delimiter=' ')
    tofile_name = 'binary'		# 定义导出二进制文件名
    data.tofile(tofile_name)	# 导出二进制文件
    fromfile_data = np.fromfile(tofile_name, dtype='float32')	# 读取二进制文件
    print(fromfile_data)
    

    image

    注意:务必确保读入文件跟存储文件时的数据类型一致,否则导致数据报错。比如上面代码,不指定float32格式,看一下输出结果。
    tofile()方法保存的数据丢失数据形状信息,因此导入时无法重现原始数据矩阵。

    image

  • 相关阅读:
    网络常用的linux系统调用
    如何在Linux下写无线网卡的驱动【转】
    理解 Linux 配置文件【转】
    每天一个linux命令【转】
    宏定义编写技巧__调试技巧【原创】
    linux 高级字符设备驱动 ioctl操作介绍 例程分析实现【转】
    Linux驱动总结3- unlocked_ioctl和堵塞(waitqueue)读写函数的实现 【转】
    初识CPU卡、SAM卡/CPU卡简介、SAM卡简介 【转】
    android中跨进程通讯的4种方式
    MISC混杂设备 struct miscdevice /misc_register()/misc_deregister()【转】
  • 原文地址:https://www.cnblogs.com/keye/p/15092276.html
Copyright © 2020-2023  润新知