npy文件python
时间: 2025-03-25 16:00:52 浏览: 78
### Python 中处理 `.npy` 文件的方法
`.npy` 是 NumPy 提供的一种用于存储多维数组数据的二进制文件格式。它具有高效性和易用性的特点,适合保存和加载大型数值型数据集。
#### 加载 `.npy` 文件
要从磁盘上读取一个 `.npy` 文件并将其转换为 NumPy 数组,可以使用 `numpy.load()` 函数[^1]:
```python
import numpy as np
# 假设有一个名为 'data.npy' 的 .npy 文件
loaded_data = np.load('data.npy')
print(loaded_data.shape) # 打印数组形状
```
上述代码会将指定路径下的 `.npy` 文件加载到内存中,并返回对应的 NumPy 数组对象。
---
#### 保存数据至 `.npy` 文件
如果希望将现有的 NumPy 数组保存为 `.npy` 文件以便后续使用,则可调用 `numpy.save()` 方法:
```python
array_to_save = np.random.rand(100, 100) # 创建一个随机数构成的二维数组
np.save('saved_array.npy', array_to_save)
# 验证保存成功后重新加载该文件
reloaded_array = np.load('saved_array.npy')
assert np.array_equal(array_to_save, reloaded_array), "Arrays do not match!"
```
通过这种方式能够轻松实现对复杂结构化数据的有效存档操作。
---
#### 处理训练数据中的 `.npy` 文件
当涉及机器学习项目时,通常需要加载多个 `.npy` 文件作为输入特征矩阵的一部分。例如,在某些场景下,训练样本可能被预处理成 `[num_samples, height, width, channels]` 形式的四维张量[^3]:
```python
train_data = np.load('training_set.npy') # 假定 shape=[N,H,W,C]
if train_data.ndim != 4 or train_data.shape[-1] != 1:
raise ValueError("Expected a four-dimensional tensor with last dimension size of one.")
print(f"Training set contains {len(train_data)} samples.")
```
此片段展示了验证所加载的数据是否满足特定维度约束的过程。
---
以下是综合示例程序展示如何创建、保存以及再次恢复简单的图像样例集合:
```python
from PIL import Image
import numpy as np
def create_dummy_image():
img = Image.new(mode='L', size=(64, 64)) # 新建灰度模式图片 (8-bit pixels black and white)
draw = ImageDraw.Draw(img)
draw.rectangle([10, 10, 54, 54], fill=255) # 绘制白色矩形框
return np.asarray(img).reshape((64, 64, 1))
images_list = [create_dummy_image() for _ in range(10)] # 构造十幅相同图案的小图序列
stacked_images = np.stack(images_list, axis=0) # 合并成为批量形式 N*H*W*C
# 存储堆叠后的结果
output_filename = './synthetic_dataset.npy'
np.save(output_filename, stacked_images)
restored_stack = np.load(output_filename) # 测试反序列化功能正常与否
for idx, restored_img in enumerate(restored_stack[:3]):
im = Image.fromarray(restored_img.squeeze(), mode="L") # 转回PIL实例便于可视化观察前几张记录效果
im.show(title=f'Sample #{idx}')
```
以上脚本先定义了一个辅助函数用来生成固定规格的人工合成测试素材;接着把这些独立个体组合起来形成统一标准的大规模批次表示法最后完成持久化的动作流程说明。
---
阅读全文
相关推荐

















