📜  Python中的 numpy.load()(1)

📅  最后修改于: 2023-12-03 14:46:36.195000             🧑  作者: Mango

Python中的numpy.load()

numpy.load()是用于从.npy和.npz文件中加载numpy数组的函数。.npy文件是一种保存单个numpy数组的二进制文件格式,可以通过numpy.load()函数进行加载。.npz文件是压缩的numpy存档文件,可以包含多个.npy文件,也可以通过numpy.load()函数进行加载。

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

参数

  • file:需要加载的.npy或.npz文件的文件名或文件类对象。
  • mmap_mode:可选参数,表示在返回数组时是否应该使用内存映射来读取.npy或.npz文件数据。默认为None,表示不使用内存映射。
  • allow_pickle:可选参数,表示是否允许读取.npy或.npz文件中存储的Python对象(如Python列表、元组等)。默认为True。
  • fix_imports:可选参数,表示是否在加载时尝试将旧的pickle数据导入到新的名称空间中。默认为True。
  • encoding:可选参数,表示.npy或.npz文件中数据的编码方式。默认为'ASCII'。

返回值

函数返回一个numpy.ndarray对象或一个保存多个numpy数组的字典,具体取决于文件的类型。

示例
加载.npy文件
import numpy as np

arr = np.load('array.npy')

print(arr)

输出

[1 2 3 4 5]
加载.npz文件
import numpy as np

# 保存多个数组到.npz文件中
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.savez('arrays.npz', arr1=a, arr2=b)

# 加载.npz文件
data = np.load('arrays.npz')

# 查看.npz文件中的内容
print(data.files)
print(data['arr1'])
print(data['arr2'])

输出

['arr1', 'arr2']
[1 2 3]
[4 5 6]
使用内存映射加载文件数据
import numpy as np

# 保存一个大型数组到.npy文件中
arr = np.ones((100000000,), dtype='i4')
np.save('big_array.npy', arr)

# 使用内存映射模式加载.npy文件
arr_mmap = np.load('big_array.npy', mmap_mode='r')

# 查看内存映射数组的数据类型和形状
print(arr_mmap.dtype)
print(arr_mmap.shape)

输出

int32
(100000000,)
总结

numpy.load()函数是用于从.npy和.npz文件中加载numpy数组的函数。它可以用于加载单个数组或多个数组的存档文件,并支持使用内存映射模式加载大型数组。