带有广播的numpy数组构造
numpy array construction with broadcasting
我想将具有不同但广播兼容数组的数组堆叠在一起。给定 7x5、7x1、1x5 和 1x1 数组,我想做类似
的事情
a475 = mkarr([a75, a71, a15, a11])
其中 a455
将是一个 4x7x5 数组。
理想情况下,我也希望能够做到
a2275 = mkarr([[a75, a71], [a15, a11]])
得到一个 2x2x7x5 的数组。
用numpy表达这些操作最简洁的方式是什么?
您可以使用 np.broadcast_arrays
:
a475 = np.stack(np.broadcast_arrays(a75, a71, a15, a11))
请注意,这会创建原始数组的视图,因此不会占用任何额外的内存。
我想将具有不同但广播兼容数组的数组堆叠在一起。给定 7x5、7x1、1x5 和 1x1 数组,我想做类似
的事情 a475 = mkarr([a75, a71, a15, a11])
其中 a455
将是一个 4x7x5 数组。
理想情况下,我也希望能够做到
a2275 = mkarr([[a75, a71], [a15, a11]])
得到一个 2x2x7x5 的数组。
用numpy表达这些操作最简洁的方式是什么?
您可以使用 np.broadcast_arrays
:
a475 = np.stack(np.broadcast_arrays(a75, a71, a15, a11))
请注意,这会创建原始数组的视图,因此不会占用任何额外的内存。