【发布时间】:2018-05-14 15:34:15
【问题描述】:
我有一个 numpy 形状数组,例如 (1000, 80),我想将其转换为 (100, 40, 2)。您可以将其视为有 1000 个观察值,其中前 40 列指的是 40 天内的特定特征,接下来的 40 列指的是同一 40 天内的第二个特征。
所以,我希望第 2 个维度是 40 天,而第 3 个维度应该是这两个特征每天的值。
这是我尝试过的一个简单示例:
import numpy as np
data = [[11, 22, 33, 44],
[55, 66, 77 ,88],
[99, 100, 101, 102]]
data = np.array(data)
# This works but I have to manually do it for every day
np.c_[data[:, ::2], data[:, 1::2]].reshape((3, 2, 2))
# This does not work
np.c_[data[:, i::2] for i in range(2)].reshape((3, 2, 2))
期望的输出:
array([[[ 11, 33],
[ 22, 44]],
[[ 55, 77],
[ 66, 88]],
[[ 99, 101],
[100, 102]]])
【问题讨论】: