numpy.load

numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')[源代码]

从加载数组或酸洗对象 .npy.npz 或者腌制的文件。

警告

加载包含对象数组的文件时使用 pickle 对错误或恶意构造的数据不安全的模块。考虑通过 allow_pickle=False 加载已知不包含对象数组的数据,以便更安全地处理不受信任的源。

参数
file像object、string或pathlib.path这样的文件

要读取的文件。类似文件的对象必须支持 seek()read() 方法。pickled文件要求类似文件的对象支持 readline() 方法也是如此。

mmap_mode无,'R+'、'R'、'W+'、'C',可选

如果不是“无”,则内存使用给定模式映射文件(请参见 numpy.memmap 有关模式的详细描述)。内存映射数组保存在磁盘上。但是,它可以像任何ndarray一样被访问和切片。内存映射对于在不将整个文件读取到内存的情况下访问大文件的小片段特别有用。

allow_pickle可选的布尔

允许加载存储在npy文件中的pickle对象数组。不允许pickle的原因包括安全性,因为加载pickle数据可以执行任意代码。如果不允许pickle,加载对象数组将失败。默认值:False

在 1.16.3 版更改: 根据CVE-2019-6446,将默认设置为假。

fix_imports可选的布尔

仅当在python 3上加载python 2生成的pickled文件时才有用,其中包括包含对象数组的npy/npz文件。如果 fix_imports 是的,pickle将尝试将旧的python 2名称映射到python 3中使用的新名称。

encoding可选的STR

读取python 2字符串时要使用什么编码。仅当在python 3中加载python 2生成的pickled文件时才有用,其中包括包含对象数组的npy/npz文件。不允许“latin1”、“ascii”和“bytes”以外的值,因为它们可能会损坏数字数据。默认值:“ascii”

返回
result数组、元组、dict等。

存储在文件中的数据。为了 .npz 文件,必须关闭npzfile类的返回实例,以避免泄漏文件描述符。

加薪
IOError

如果输入文件不存在或无法读取。

ValueError

该文件包含一个对象数组,但给定了allow_pickle=false。

参见

save, savez, savez_compressed, loadtxt
memmap

创建存储在磁盘文件中的数组的内存映射。

lib.format.open_memmap

创建或加载映射的内存 .npy 文件。

笔记

  • 如果文件包含pickle数据,则返回存储在pickle中的任何对象。

  • 如果文件是 .npy 文件,然后返回单个数组。

  • 如果文件是 .npz 文件,然后返回类似字典的对象,其中包含 {{filename: array}} 键值对,存档中的每个文件对应一个键值对。

  • 如果文件是 .npz 文件,返回的值以类似于open函数的方式支持上下文管理器协议:

    with load('foo.npz') as data:
        a = data['a']
    

    退出“with”块时,底层文件描述符将关闭。

实例

将数据存储到磁盘,然后再次加载:

>>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))
>>> np.load('/tmp/123.npy')
array([[1, 2, 3],
       [4, 5, 6]])

将压缩数据存储到磁盘,然后再次加载:

>>> a=np.array([[1, 2, 3], [4, 5, 6]])
>>> b=np.array([1, 2])
>>> np.savez('/tmp/123.npz', a=a, b=b)
>>> data = np.load('/tmp/123.npz')
>>> data['a']
array([[1, 2, 3],
       [4, 5, 6]])
>>> data['b']
array([1, 2])
>>> data.close()

mem映射存储的数组,然后直接从磁盘访问第二行:

>>> X = np.load('/tmp/123.npy', mmap_mode='r')
>>> X[1, :]
memmap([4, 5, 6])