两个矩阵的所有列组合的按位乘积

问题描述 投票:0回答:1

正如标题所述,我想计算两个矩阵的所有列组合的按分量乘积。我已经找到了使用numpy.einsumnumpy.hstack的解决方案。我想知道是否有没有hstack的解决方案。

a = [a_1, a_2, ..., a_n]d x n矩阵,b = [b_1, b_2, ..., b_m]d x m矩阵。我想计算

[a_1b_1, a_1b_2, ..., a_nb_{n-1}, a_nb_n]

其中a_kb_l是按分量计算的乘积,即a_kb_l = [a_{1,k}*b{1,l}, ..., a_{d,k}*b{d,l}].T

我的解决方法如下。np.hstack(np.einsum('...j,...l -> j...l', a, b))

我可以不用h_stack吗?

numpy numpy-broadcasting numpy-einsum hstack
1个回答
0
投票

以下改进以hstack代替reshaped高时,这会释放相当大的内存压力。

np.einsum('...j,...l -> ...jl', a, b).reshape(d, -1)

© www.soinside.com 2019 - 2024. All rights reserved.