Вы можете выполнить серию преобразований и транспозиций, чтобы получить желаемый результат. Например, начните с разделения существующих измерений, чтобы добавить больше:
a = a.reshape(32, 8, 32, 8)
Изменение формы не требует копирования данных. Теперь переместите измерения, которые вы хотите сгруппировать, обратно:
a = a.transpose(0, 2, 1, 3)
Это создаст копию массива с блоками, которые вы хотите расположить последовательно. Теперь вы можете изменить форму только блоков:
a = a.reshape(32, 32, 64)
Это изменение также не скопирует никаких данных, поскольку вы сохраняете макет памяти.