npz文件中数组为Prediction shape: (3408, 12, 307, 1) Truth shape: (3408, 12, 307, 1),读取并输出为以time为横坐标,traffic flow为纵坐标的折线图像并给出完整代码
时间: 2023-07-15 16:12:59 浏览: 63
NPZ.jl:一个 Julia 包,支持读取和写入 Numpy .npy 和 .npz 文件
以下是读取npz文件中数组并绘制折线图的完整Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 读取npz文件中的数组
data = np.load('data.npz')
predictions = data['Prediction']
truths = data['Truth']
# 取出第一个样本的预测和真实值
prediction = predictions[0].squeeze()
truth = truths[0].squeeze()
# 绘制折线图
x = np.arange(prediction.shape[0])
plt.plot(x, prediction, label='Prediction')
plt.plot(x, truth, label='Truth')
plt.xlabel('Time')
plt.ylabel('Traffic Flow')
plt.legend()
plt.show()
```
其中,`np.load('data.npz')` 用于读取npz文件中的数组,`data['Prediction']` 和 `data['Truth']` 分别获取预测值和真实值,`squeeze()` 用于去除shape中为1的维度,`np.arange(prediction.shape[0])` 用于生成横坐标time,`plt.plot()` 用于绘制折线图,`plt.xlabel()` 和 `plt.ylabel()` 用于设置坐标轴标签,`plt.legend()` 用于显示图例,`plt.show()` 用于显示图像。
阅读全文