python队列、LSTM数据预处理

Python队列

[需要解读的源代码出处:

https://www.bilibili.com/video/BV1U341127k5/?p=2&vd_source=6b3f04503eefbf2a2e91a1912ce6a6e0](https://www.bilibili.com/video/BV1U341127k5/?p=2&vd_source=6b3f04503eefbf2a2e91a1912ce6a6e0)

## 设定记忆天数
mem_his_days = 5
deq = deque(maxlen=mem_his_days)

'''
In:
sca_X.shape
Out:
(4275, 5)
'''

X = []
for i in sca_X:
    deq.append(list(i))
    if len(deq) == mem_his_days:
        X.append(list(deq))

代码解读:

# 样本数据
sca_X = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
mem_his_days = 5
deq = deque(maxlen=mem_his_days)
X = []

03.查看内部结构

3.1 创建空队列

deq = deque(maxlen=5)

3.2 迭代’sca_X’ 的每个元素,将其添加到队列中

# 添加元素1
deq.append([1])
Queue: [1]

# 添加元素2
deq.append([2])
Queue: [1, 2]

# 添加元素3
deq.append([3])
Queue: [1, 2, 3]

# 添加元素4
deq.append([4])
Queue: [1, 2, 3, 4]

# 添加元素5
deq.append([5])
Queue: [1, 2, 3, 4, 5]

# 队列已满,添加到X列表中
X: [[1, 2, 3, 4, 5]]

# 添加元素6,先进先出,元素1被移出队列
deq.append([6])
Queue: [2, 3, 4, 5, 6]

# 添加元素7
deq.append([7])
Queue: [2, 3, 4, 5, 7]

# 添加元素8
deq.append([8])
Queue: [2, 3, 4, 5, 8]

# 添加元素9
deq.append([9])
Queue: [2, 3, 4, 5, 9]

# 添加元素10,队列已满,添加到X列表中
X: [[1, 2, 3, 4, 5], [2, 3, 4, 5, 9]]

04.完整实验:

4.1 单个list

In:
# 此时将
sca_X = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
mem_his_days = 5
deq = deque(maxlen=mem_his_days)
X = []
for i in sca_X:
    deq.append(i)
    # 只要超过 天就先进先出
    if len(deq) == mem_his_days:
        X.append(list(deq))
display(X)


Out: 
    
[[1, 2, 3, 4, 5],
 [2, 3, 4, 5, 6],
 [3, 4, 5, 6, 7],
 [4, 5, 6, 7, 8],
 [5, 6, 7, 8, 9],
 [6, 7, 8, 9, 10]]

4.2 多个list【二维】

In:
sca_X = [[11,12,13,14,15], 
         [21,22,23,24,25], 
         [31,32,33,34,35], 
         [41,42,43,44,45], 
         [51,52,53,54,55], 
         [61,62,63,64,65], 
         [71,72,73,74,75], 
         [81,82,83,84,85], 
         [91,92,93,94,95], 
         [101,102,103,104]]

mem_his_days = 5
deq = deque(maxlen=mem_his_days)
X = []
for i in sca_X:
    deq.append(list(i))
    # 只要超过 天就先进先出
    if len(deq) == mem_his_days:
        X.append(list(deq))
display(X)


Out:

[[[11, 12, 13, 14, 15],
  [21, 22, 23, 24, 25],
  [31, 32, 33, 34, 35],
  [41, 42, 43, 44, 45],
  [51, 52, 53, 54, 55]],
 [[21, 22, 23, 24, 25],
  [31, 32, 33, 34, 35],
  [41, 42, 43, 44, 45],
  [51, 52, 53, 54, 55],
  [61, 62, 63, 64, 65]],
 [[31, 32, 33, 34, 35],
  [41, 42, 43, 44, 45],
  [51, 52, 53, 54, 55],
  [61, 62, 63, 64, 65],
  [71, 72, 73, 74, 75]],
 [[41, 42, 43, 44, 45],
  [51, 52, 53, 54, 55],
  [61, 62, 63, 64, 65],
  [71, 72, 73, 74, 75],
  [81, 82, 83, 84, 85]],
 [[51, 52, 53, 54, 55],
  [61, 62, 63, 64, 65],
  [71, 72, 73, 74, 75],
  [81, 82, 83, 84, 85],
  [91, 92, 93, 94, 95]],
 [[61, 62, 63, 64, 65],
  [71, 72, 73, 74, 75],
  [81, 82, 83, 84, 85],
  [91, 92, 93, 94, 95],
  [101, 102, 103, 104]]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值