获取价格数组

时间:2018-11-20 17:02:53

标签: python numpy indexing

当前,我有一个张量ytrue,其中ytrue.shape等于(4650, 30, 161)

我每隔5秒钟就会在纽约证券交易所(NYSE)上午9:00至下午4:30之间获取特定股票的信息。所以我在张量中有4650层,代表该期间的每5秒。每层的尺寸为(30,161)。 30代表我过去看过的步骤数,161代表有多少个特征(160个特征+目标价格)。

我试图用

重塑它以获得当前价格
X = ytrue[:, :, -1]

但我知道了

ipdb> X                                                                                                                                     
array([[262.655, 262.605, 261.99 , ..., 263.615, 263.75 , 263.75 ],
       [262.605, 261.99 , 261.99 , ..., 263.75 , 263.75 , 263.71 ],
       [261.99 , 261.99 , 262.015, ..., 263.75 , 263.71 , 263.63 ],
       ...,
       [253.065, 253.03 , 252.93 , ..., 253.115, 253.18 , 253.27 ],
       [253.03 , 252.93 , 253.1  , ..., 253.18 , 253.27 , 253.345],
       [252.93 , 253.1  , 253.145, ..., 253.27 , 253.345, 253.35 ]])

我需要使用每个子数组的最后一个元素来创建价格数组,例如

[262.655, 262.605, 261.99 , ..., 263.615, 263.75 , 263.75 ] --> 263.75

如何从ytrue获取每个元素的数组?

1 个答案:

答案 0 :(得分:2)

使用fancy indexing

X[:, -1]应该可以解决问题。

一个较小的示例,您可以轻松地加以注意:

In [4]: x = np.arange(25).reshape(5, 5)

In [5]: x
Out[5]:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24]])

In [6]: x[:, -1]
Out[6]: array([ 4,  9, 14, 19, 24])

HTH。