当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy load用法及代码示例


本文简要介绍 python 语言中 numpy.load 的用法。

用法:

numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')

.npy.npz 或 pickled 文件加载数组或 pickled 对象。

警告

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

参数

file file-like 对象、字符串或 pathlib.Path

要读取的文件。 File-like 对象必须支持 seek()read() 方法。 pickle 文件要求 file-like 对象也支持 readline() 方法。

mmap_mode {无,‘r+’,‘r’,‘w+’,‘c’},可选

如果不是“无”,则使用给定模式对文件进行内存映射(有关模式的详细说明,请参阅 numpy.memmap )。 memory-mapped 数组保存在磁盘上。然而,它可以像任何 ndarray 一样被访问和切片。内存映射对于访问大文件的小片段而不将整个文件读入内存特别有用。

allow_pickle 布尔型,可选

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

fix_imports 布尔型,可选

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

encoding str,可选

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

返回

result 数组、元组、字典等

数据存储在文件中。对于.npz 文件,必须关闭返回的NpzFile 类实例,以避免泄漏文件说明符。

抛出

操作系统错误

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

UnpicklingError

如果 allow_pickle=True ,但文件不能作为泡菜加载。

ValueError

该文件包含一个对象数组,但给出了allow_pickle=False

注意

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

  • 如果文件是.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-map 存储数组,然后直接从磁盘访问第二行:

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

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.load。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。