строительство массива с вещанием - PullRequest
0 голосов
/ 30 октября 2018

Я хотел бы объединить массивы, которые имеют разные, но совместимые с широковещательной передачей Учитывая массивы 7x5, 7x1, 1x5 и 1x1, я хочу сделать что-то вроде

 a475 = mkarr([a75, a71, a15, a11])

, где a455 будет массивом 4x7x5. В идеале я также хотел бы иметь возможность сделать

 a2275 = mkarr([[a75, a71], [a15, a11]])

для получения массива 2x2x7x5.

Какой самый краткий способ выразить эту операцию в numpy?

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете использовать np.broadcast_arrays:

a475 = np.stack(np.broadcast_arrays(a75, a71, a15, a11))

Обратите внимание, что это создает представления исходных массивов, поэтому это не должно повлечь за собой дополнительное использование памяти.

...