解读李宏毅机器学习PM2.5数据处理部分(2)

第一部分解读链接:解读李宏毅机器学习数据处理部分(1)_Hey Kids!!!的博客-CSDN博客

x = np.empty([12 * 471, 18 * 9], dtype=float)
y = np.empty([12 * 471, 1], dtype=float)
for month in range(12):
    for day in range(20):
        for hour in range(24):
            if day == 19 and hour > 14:
                continue
            x[month * 471 + day * 24 + hour, :] = month_data[month][:,day * 24 + hour: day * 24 + hour + 9].reshape(1,-1)  # vector dim:18*9 (9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9)
            y[month * 471 + day * 24 + hour, 0] = month_data[month][9, day * 24 + hour + 9]  # value

这个部分的数据处理依然把我难的大汗淋漓 = =

我们前面有提到month_data 是一个字典,月份是key,(18,480)的数组是value

x和y为什么这样设置:

x-   行:12是12个月份,471的含义是480个小时每9小时算一笔,举个例子:0-8,1-9,.....,472-480,这里总共471笔,

       列:我画个图就明白了。拿第一第二列为例子:

 y-  就是标签x取的是前九小时作为训练,然后第十小时数据作为label,这里很好理解不做赘述。

我们来承接上面的代码看看老师是怎么操作的

month = 0

day = 0

hour = 0:24

x[0, :] = month_data[0][:,0:9].reshape(1,-1)

month_data[0]对应的是第一个月的数据,我们知道格式是(18,480)取所有18行,然后列取前九小时。

我们知道在上一段代码中我已经把每个月20天的数据按照18个feature全给他分好了。

这样切下来的就是完整的18个feature对应的小时数据。

reshape(1,-1)的作用就是把它全部拉成一行,作为x的第一行

总结一下:

上一篇文章提到的代码段的目的是将分散在每天的各个feature的数据重新整合归类,这一篇的代码段的目的是把每一个时间段的数据进行汇总,第一行只要0-8小时的所有数据,第二行只要1-9小时的所有数据以此类推,这样处理就能把数据完美划分了,不得不说李宏毅老师还是厉害的。

现在这个代码干了啥应该就迎刃而解了:)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值