加载csv文件绘制折线图_enumerate&列表转化为数组&序列

加载csv文件绘制折线图_enumerate&列表转化为数组

将 420 551 行数据转换成一个 Numpy 数组。
绘制温度时间序列

# 在这个数据集中,每 10 分钟记录 14 个不同的量(比如气温、气压、湿度、风向等),其中
# 包含多年的记录。原始数据可追溯到 2003 年,但本例仅使用 2009—2016 年的数据。这个数据
# 集非常适合用来学习处理数值型时间序列。我们将会用这个数据集来构建模型,输入最近的一
# 些数据(几天的数据点),可以预测 24 小时之后的气温。
# 下载并解压数据,如下所示。
# cd ~/Downloads
# mkdir jena_climate
# cd jena_climate
# wget https://s3.amazonaws.com/keras-datasets/jena_climate_2009_2016.csv.zip
# unzip jena_climate_2009_2016.csv.zip
# 来观察一下数据

# 代码清单 6-28 观察耶拿天气数据集的数据
import os
# 加载csv文件

# data_dir = '/home/ubuntu/data/'
data_dir = 'C:\\file\data'
fname = os.path.join(data_dir, 'jena_climate_2009_2016.csv')

f = open(fname)
data = f.read()
f.close()

# 以换行符切分
lines = data.split('\n')
# 将第一行赋予首行
header = lines[0].split(',')
lines = lines[1:]

print(header)
print(len(lines))
print(type(lines))

['"Date Time"', '"p (mbar)"', '"T (degC)"', '"Tpot (K)"', '"Tdew (degC)"', '"rh (%)"', '"VPmax (mbar)"', '"VPact (mbar)"', '"VPdef (mbar)"', '"sh (g/kg)"', '"H2OC (mmol/mol)"', '"rho (g/m**3)"', '"wv (m/s)"', '"max. wv (m/s)"', '"wd (deg)"']
420551
<class 'list'>
Let's convert all of these 420,551 lines of data into a Numpy array:

enumerate
# 接下来,将 420 551 行数据转换成一个 Numpy 数组。
# 代码清单 6-29 解析数据
import numpy as np
​
float_data = np.zeros((len(lines), len(header) - 1))
for i, line in enumerate(lines):
    values = [float(x) for x in line.split(',')[1:]]
    float_data[i, :] = values
    
#     比如,温度随时间的变化如图 6-18 所示(单位:摄氏度)。在这张图中,你可以清楚地看
# 到温度每年的周期性变化。
# 代码清单 6-30 绘制温度时间序列

from matplotlib import pyplot as plt

temp = float_data[:, 1]  # temperature (in degrees Celsius)
plt.plot(range(len(temp)), temp)
plt.show()

在这里插入图片描述

# 图 6-19 给出了前 10 天温度数据的图像。因为每 10 分钟记录一个数据,所以每天有 144 个
# 数据点。
# 代码清单 6-31 绘制前 10 天的温度时间序列

plt.plot(range(1440), temp[:1440])
plt.show()

# 在这张图中,你可以看到每天的周期性变化,尤其是最后 4 天特别明显。另外请注意,这
# 10 天一定是来自于很冷的冬季月份。
# 如果你想根据过去几个月的数据来预测下个月的平均温度,那么问题很简单,因为数据具
# 有可靠的年度周期性。但从几天的数据来看,温度看起来更混乱一些。以天作为观察尺度,这
# 个时间序列是可以预测的吗?我们来寻找这个问题的答案

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值