• numpy 文件存取 npy、npz


    转处:http://blog.csdn.net/pipisorry/article/details/39088003

    NumPy提供了多种文件操作函数方便我们存取数组内容。

    文件存取的格式:二进制和文本。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。

    Numpy binary files (NPY, NPZ)

    load(file[, mmap_mode, allow_pickle, ...]) Load arrays or pickled objects from .npy.npz or pickled files.
    save(file, arr[, allow_pickle, fix_imports]) Save an array to a binary file in NumPy .npy format.
    savez(file, *args, **kwds) Save several arrays into a single file in uncompressed .npz format.
    savez_compressed(file, *args, **kwds) Save several arrays into a single file in compressed .npz format.

    The format of these binary file types is documented inhttp://docs.scipy.org/doc/numpy/neps/npy-format.html

    numpy.load和numpy.save函数(推荐在不需要查看保存数据的情况下使用)

    以NumPy专用的二进制类型保存数据,这两个函数会自动处理元素类型和shape等信息,使用它们读写数组就方便多了,但是numpy.save输出的文件很难和其它语言编写的程序读入:

    >>> np.save("a.npy", a)
    >>> c = np.load( "a.npy" )
    >>> c
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    

    Note:

    1. 文件要保存为.npy文件类型,否则会出错

    2. 保存为numpy专用二进制格式后,就不能用notepad++打开(乱码)看了,这是相对tofile内建函数不好的一点

    numpy.savez函数

    如果你想将多个数组保存到一个文件中的话,可以使用numpy.savez函数。savez函数的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为arr_0, arr_1, ...。savez函数输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容:

    >>> a = np.array([[1,2,3],[4,5,6]])
    >>> b = np.arange(0, 1.0, 0.1)
    >>> c = np.sin(b)
    >>> np.savez("result.npz", a, b, sin_array = c)
    >>> r = np.load("result.npz")
    >>> r["arr_0"] # 数组a
    array([[1, 2, 3],
           [4, 5, 6]])
    >>> r["arr_1"] # 数组b
    array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9])
    >>> r["sin_array"] # 数组c
    array([ 0.        ,  0.09983342,  0.19866933,  0.29552021,  0.38941834,
            0.47942554,  0.56464247,  0.64421769,  0.71735609,  0.78332691])
    

    如果你用解压软件打开result.npz文件的话,会发现其中有三个文件:arr_0.npy, arr_1.npy, sin_array.npy,其中分别保存着数组a, b, c的内容。

  • 相关阅读:
    Path类
    C#集合
    阿里巴巴2013年实习生笔试题B
    阿里巴巴2013年实习生笔试题A
    腾讯2014年校园招聘笔试试题
    腾讯技术类校园招聘笔试试题
    腾讯2013年实习生笔试题
    腾讯2012年实习生笔试题
    hdu1505
    hdu1506
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/9771838.html
Copyright © 2020-2023  润新知