npz文件中数组为Prediction shape: (3408, 12, 307, 1) Truth shape: (3408, 12, 307, 1),读取并合并两个数组输出为折线图并给出完整代码
时间: 2023-07-15 11:13:01 浏览: 75
NPZ.jl:一个 Julia 包,支持读取和写入 Numpy .npy 和 .npz 文件
首先,我们需要使用numpy和matplotlib库来读取npz文件和绘制折线图。以下是完整代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 读取npz文件
data = np.load('data.npz')
prediction = data['Prediction']
truth = data['Truth']
# 合并数组
merged = np.concatenate((prediction, truth), axis=3)
# 绘制折线图
x = np.arange(0, 307)
for i in range(12):
plt.plot(x, merged[0, i, :, 0], label='Prediction' if i == 0 else None)
plt.plot(x, merged[0, i, :, 1], label='Truth' if i == 0 else None)
plt.legend()
plt.show()
```
解释一下代码:
首先,我们使用numpy库的`load`函数来读取npz文件,并将其存储在变量`data`中。我们可以通过使用`data['Prediction']`和`data['Truth']`来获取文件中的两个数组。
接下来,我们使用numpy库的`concatenate`函数来将两个数组合并成一个新的数组。由于我们想要在最后一个维度上合并两个数组,我们将`axis`参数设置为3。
最后,我们使用matplotlib库来绘制折线图。对于每个时间步,我们使用`plt.plot`函数来绘制两条曲线,一条代表预测值,一条代表真实值。我们还使用`label`参数来为每条曲线添加标签。最后,我们使用`plt.legend()`函数来添加图例,并使用`plt.show()`函数来显示图形。
阅读全文