np.save函数详解
时间: 2024-05-03 11:18:03 浏览: 128
numpy的文件存储.npy .npz 文件详解
`np.save` 函数是 NumPy 库中用于将数组数据保存到文件的函数,它的语法为:
```python
np.save(file, arr, allow_pickle=True, fix_imports=True)
```
其中:
- `file`:要保存到的文件名或 Python 文件对象。
- `arr`:要保存的数组数据。
- `allow_pickle`:可选参数,用于指定是否允许保存 pickle 序列化的对象,默认为 True。
- `fix_imports`:可选参数,用于指定是否尝试将 Python 2 中的 pickle 对象转换为 Python 3 中的对象,默认为 True。
`np.save` 函数将数组数据保存为 `.npy` 格式的文件,该文件包含 NumPy 数组的数据和元数据。
下面是一个示例,将数组 `a` 保存到文件 `array.npy` 中:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
np.save('array.npy', a)
```
如果要读取保存的数组数据,可以使用 `np.load` 函数,它的语法为:
```python
np.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII')
```
其中:
- `file`:要读取的 `.npy` 文件名或 Python 文件对象。
- `mmap_mode`:可选参数,用于指定内存映射模式,默认为 None。
- `allow_pickle`:可选参数,用于指定是否允许读取 pickle 序列化的对象,默认为 True。
- `fix_imports`:可选参数,用于指定是否尝试将 Python 2 中的 pickle 对象转换为 Python 3 中的对象,默认为 True。
- `encoding`:可选参数,用于指定读取文本数据时使用的字符编码,默认为 'ASCII'。
下面是一个示例,读取文件 `array.npy` 中保存的数组数据:
```python
import numpy as np
a = np.load('array.npy')
print(a)
```
输出结果为:
```
[1 2 3 4 5]
```
除了 `.npy` 格式的文件,NumPy 还支持保存为 `.npz` 格式的文件,该文件包含多个 NumPy 数组的数据和元数据。可以使用 `np.savez` 函数将多个数组保存到一个 `.npz` 文件中,它的语法为:
```python
np.savez(file, *args, **kwds)
```
其中:
- `file`:要保存到的文件名或 Python 文件对象。
- `*args`:要保存的数组数据。
- `**kwds`:可选参数,用于指定数组数据的名称。
下面是一个示例,将数组 `a` 和 `b` 保存到文件 `arrays.npz` 中:
```python
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])
np.savez('arrays.npz', a=a, b=b)
```
如果要读取保存的多个数组数据,可以使用 `np.load` 函数,它的语法为:
```python
np.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII')
```
其中:
- `file`:要读取的 `.npz` 文件名或 Python 文件对象。
- `mmap_mode`:可选参数,用于指定内存映射模式,默认为 None。
- `allow_pickle`:可选参数,用于指定是否允许读取 pickle 序列化的对象,默认为 True。
- `fix_imports`:可选参数,用于指定是否尝试将 Python 2 中的 pickle 对象转换为 Python 3 中的对象,默认为 True。
- `encoding`:可选参数,用于指定读取文本数据时使用的字符编码,默认为 'ASCII'。
下面是一个示例,读取文件 `arrays.npz` 中保存的数组数据:
```python
import numpy as np
data = np.load('arrays.npz')
a = data['a']
b = data['b']
print(a)
print(b)
```
输出结果为:
```
[1 2 3 4 5]
[ 6 7 8 9 10]
```
总之,`np.save` 函数可以将单个数组保存为 `.npy` 格式的文件,`np.load` 函数可以读取 `.npy` 文件中的单个数组数据;`np.savez` 函数可以将多个数组保存为 `.npz` 格式的文件,`np.load` 函数可以读取 `.npz` 文件中的多个数组数据。这些函数的使用非常简单,但是在实际应用中非常有用。
阅读全文