Python操作npy文件:存取数据实例

18 下载量 158 浏览量 更新于2023-03-16 收藏 46KB PDF 举报
本文主要介绍了如何使用Python中的`numpy`库来存储和读取`.npy`格式的数据,包括列表和字典类型的数据,并提到了`.mat`文件的读取和转换。 在Python中,`.npy`是NumPy库用于存储数组数据的标准格式。这种格式能够保留数组的维度信息和数据类型,使得数据的读写过程变得简单高效。NumPy提供了两个主要的函数来处理这种格式: 1. `np.save(file_path, data)`:这个函数用于将数据结构(如列表、数组或字典)保存到`.npy`文件中。例如,如果有一个嵌套列表`z`,可以通过`np.save('test.npy', z)`将其保存到名为`test.npy`的文件中。 2. `np.load(file_path)`:这个函数用于加载`.npy`文件中的数据,将数据恢复到原始结构。例如,`x = np.load('test.npy')`会将`test.npy`中的数据加载到变量`x`中。 举例说明,假设我们有两个示例: - 示例1:存储列表 ```python z = [[[1, 2, 3], ['w']], [[1, 2, 3], ['w']]] np.save('test.npy', z) x = np.load('test.npy') ``` 加载后的`x`是一个对象类型的数组,包含了两个元素,每个元素都是一个列表。 - 示例2:存储字典 ```python x = {0: 'wpy', 1: 'scg'} np.save('test.npy', x) y = np.load('test.npy') ``` 加载后的`y`也是对象类型的数组,但当它是字典形式时,需要使用`y.item()`将其转换回字典。 关于`.mat`文件的处理,MATLAB文件可以包含多种数据类型,包括数组、结构体等。在Python中,通常使用`scipy.io.loadmat`或`h5py`库来读取`.mat`文件。`loadmat`返回一个字典,键是MATLAB中的变量名,值是对应的数组。需要注意的是,由于MATLAB和Python对数组的转置处理不同,有时可能需要手动转置数组以匹配MATLAB中的形状。 转换`.mat`文件为`.npy`文件,可以先使用`scipy.io.loadmat`读取`.mat`文件,然后将数据转换为NumPy数组,最后使用`np.save`保存为`.npy`。反之,如果要将`.npy`文件转换为`.mat`,则需要使用`scipy.io.savemat`。 Python的`.npy`格式提供了一种方便、高效的方式来存储和读取数值数据,特别适合于数据分析和科学计算。同时,通过`scipy.io`和`h5py`库,我们可以方便地在Python和MATLAB之间进行数据交换。