Python 为深度学习重塑np数组

Python 为深度学习重塑np数组,python,numpy,keras,reshape,Python,Numpy,Keras,Reshape,我想使用keras将神经网络应用于我的时间序列数据。为了改进模型,我希望每个输出有50个时间状态的输入。最终输入应有951个样本,其中50个时间点包含10个特征(951、50、10) 因此,我必须重塑我的数据。我做了一个for循环,但是速度非常慢。有没有办法改进代码并使其更快 例如: import numpy as np X = np.ones((1000,10)) for i in range(50, int(X.shape[0]) + 1): if i == 50:

我想使用keras将神经网络应用于我的时间序列数据。为了改进模型,我希望每个输出有50个时间状态的输入。最终输入应有951个样本,其中50个时间点包含10个特征(951、50、10)

因此,我必须重塑我的数据。我做了一个for循环,但是速度非常慢。有没有办法改进代码并使其更快

例如:

import numpy as np
X = np.ones((1000,10))

for i in range(50, int(X.shape[0]) + 1):
     if i == 50:
        z = 0
        X2 = np.array(X[z:i, :]).reshape((1, 50, X.shape[1]))
     else:
        X2 = np.concatenate([X2, np.array(X[z:i, :]).reshape((1, 50, X.shape[1]))])
     z = z + 1
我们可以利用基于的来获得滑动窗口

它只是输入的一个视图,因此在运行时实际上是免费的-

In [17]: np.shares_memory(X,view_as_windows(X,(50,10))[:,0])
Out[17]: True

In [18]: %timeit view_as_windows(X,(50,10))[:,0]
10000 loops, best of 3: 32.8 µs per loop
In [17]: np.shares_memory(X,view_as_windows(X,(50,10))[:,0])
Out[17]: True

In [18]: %timeit view_as_windows(X,(50,10))[:,0]
10000 loops, best of 3: 32.8 µs per loop