У меня есть массив, который выглядит так:
test = np.zeros (7110, 514)
Мне нужно «распаковать» первые 90 значений (строк) в первое значение второго измерения, вторые 90 значений (строк) во второе значение второго измерения и т. д., чтобы желаемый результат имел форму:
desired_output = np.zeros(90, 79, 514)
Я пробовал что-то вроде:
a = np.split(test, 90, axis=1)
test1 = np.reshape(a, (79,90, 514))
но это просто утащило меня целиком кролика... Спасибо за любую помощь!
Ожидаемый результат с (8,3) будет (4,2,3). В основном я хочу разделить 0-ю ось на равные столбцы и сохранить второе измерение.
Я не знаю, понимаю ли я вопрос, у вас есть 7110 строк по 514 элементов в каждой и вы хотите «сгруппировать» 7110 строк в 90 x 79 строк?
Потому что тогда вы могли бы сделать что-то вроде этого:
>>> np.array(range(24)).reshape((6, 4))
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]])
Это 6 рядов по 4 элемента в каждом.
>>> np.array(range(24)).reshape((6, 4)).reshape(3, 2, 4)
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]]])
Ряды оставляем как есть, но вместо 6 рядов получаем 3х2 ряда.
Итак, код, который вам понадобится, это просто:
desired_output = a.reshape(90, 79, 514)
Почему бы вам не привести игрушечный пример, скажем
(8,3)
, и ожидаемый результат?