При реализации Kronecker-product
по педагогическим причинам (без использования очевидного и легкодоступного np.kron()
) я получил 4-мерную массив как промежуточный результат, который я должен изменить, чтобы получить окончательный результат.
Но, я все еще не могу обернуть голову вокруг изменения этих массивных массивов. У меня есть массив 4D
:
array([[[[ 0, 0],
[ 0, 0]],
[[ 5, 10],
[15, 20]]],
[[[ 6, 12],
[18, 24]],
[[ 7, 14],
[21, 28]]]])
Это имеет форму (2, 2, 2, 2)
, и я хотел бы изменить его на (4,4)
. Можно подумать, что это очевидно с
np.reshape(my4darr, (4,4))
Но приведенное выше изменение не дает мне ожидаемого результата:
array([[ 0, 5, 0, 10],
[ 6, 7, 12, 14],
[ 0, 15, 0, 20],
[18, 21, 24, 28]])
Как вы можете видеть, все элементы ожидаемого результата присутствуют в массиве 4D
. Я просто не могу понять, как правильно изменить форму. В дополнение к ответу, некоторое объяснение того, как сделать reshape
для таких массивов с высоким размером, было бы действительно полезно. Спасибо!