У меня есть массив значений, скажем, (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]]])