zoukankan      html  css  js  c++  java
  • Numpy用于数组数据的存储和读取

    1.将一个数组存储为二进制文件

    Numpy.save:将一个数组以.npy的格式保存为二进制文件

    np.save(file, arr)

    arr:要保存的数组对象

    Numpy.load:从.npy .npz或者pickled文件中加载数组或者pickled对象

    numpy.load(file, encoding='ASCII')

    encoding:读取python 2中的字符串时使用的编码方式。仅当在Python 3中加载Python 2生成的pickled文件时有用,默认值:“ ASCII”

    返回:数组、元组或者字典等

    import numpy as np
    
    arr = np.arange(12).reshape(3,4)
    # 保存arr数组
    np.save('arr.npy', arr)
    # 读取arr文件
    a = np.load('arr.npy')
    print(a)

    2.将一个数组存储为文本文件

    Numpy.savetxt:将一个数组保存为文本文件,只能存储一维和二维数组

    numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ')

    fname: 如果文件名以.gz结尾,文件将自动保存为gzip的压缩格式

    X:要保存的一维或者二维数组对象

    fmt:规定保存的数组元素类型,默认为%.18e

    delimiter:字符串或者字符,用来分隔列,默认为空格

    Numpy.loadtxt:从一个文本文件中加载数据,文本文件每一行的数值个数必须相同

    numpy.loadtxt(fname, dtype=<class 'float'>, delimiter=None)

    fname:要读取的文件,可以是.gz或者.bz2的压缩文件

    dtype:指定数组的数据类型,默认为float

    delimiter:用于分隔元素,要与文件中的分割符一致,默认为空格

    返回:ndarray

    import numpy as np
    
    arr = np.arange(12).reshape(3,4)
    # 将一个数组保存为csv文件
    np.savetxt('arr.csv', arr, delimiter=',')
    # 读取文件
    arr_file = np.loadtxt('arr.csv', dtype=np.int, delimiter=',')
    print(arr_file)

    3.将一个数组存储为文本文件或者二进制文件

    (这种方法会造成数组的信息丢失,不适合精确存储)

    ndarray.tofile:将一个数组存储为文本文件或者二进制文件

    nadrray.tofile(fid, sep="", format="%s")

    fid:可以是打开的文件对象或者包含文件名的字符串

    sep:分隔符,当sep为空时,以二进制的方式写入

    format:输出的格式字符串

    Numpy.fromfile:从文本或二进制文件中读取数据

    numpy.fromfile(file, dtype='float', count=-1, sep='', offset=0)

    dtype:规定返回的数组的数据类型

    count:读取的元素个数,-1为读取整个文件,默认-1,

    offset:用于二进制文件,规定当前文件位置的偏移量(以字节为单位)

    import numpy as np

    arr = np.arange(12).reshape(3,4)
    arr.tofile('arr.txt', sep=',', format='%d')
    # 以存储后的形式输出
    arr_out1 = np.fromfile('arr.txt', dtype=np.int, sep=',')
    print(arr_out1)
    # 以存储前的形式输出
    arr_out2 = np.fromfile('arr.txt', dtype=np.int, sep=',').reshape(3,4)
    print(arr_out2)

    4.将多个数组存入一个文件

    Numpy.savez:将多个数组以未压缩的.npz格式存入一个文件中

    numpy.savez(file, *args, **kwds)

    如果传入的数组参数没有给相应的键,则函数会自动给每个数组参数一个名字,从arr_0、arr_1、arr_2依次递推;如果给定了键,则可以用给定的键。

    import numpy as np
    
    arr1 = np.arange(12).reshape(3, 4) 
    arr2 = np.random.randint(0, 12, (3, 4))
    
    # 不给数组参数相应的键
    np.savez('array.npz', arr1, arr2)
    f = np.load('array.npz')
    print(f['arr_0'])
    print(f['arr_1'])
    
    # 给数组参数相应的键
    np.savez('array2.npz', arr1=arr1, arr2=arr2)
    f2 = np.load('array2.npz')
    print(f2['arr1'])
    print(f2['arr2'])

    5.将多个数组以压缩的形式存入一个文件

     Numpy.savez_compressed:将多个数组以压缩后的.npz格式保存到一个文件中

    numpy.savez_compressed(file, *args, **kwds)

    savez_compressed的用法与savez类似

  • 相关阅读:
    信息安全系统设计基础实验五:通讯协议设计 20135211李行之 20135216刘蔚然
    信息安全系统设计基础实验四:外设驱动程序设计 20135211李行之&20135216刘蔚然
    信息安全系统设计基础第十二周学习总结
    实验三-实时系统的移植 20135211李行之 20135216刘蔚然
    实验二-固件设计 20135211李行之 20135216刘蔚然
    信息安全系统设计基础第十一周学习总结
    信息安全系统设计基础实验一 20135211&20135216
    信息安全设计基础第十周学习总结
    Oracle如何创建表空间、用户及授权
    设置nginx支持虚拟机,支持多域名多网站
  • 原文地址:https://www.cnblogs.com/pineapple-chicken/p/11994457.html
Copyright © 2011-2022 走看看