numpy - 两个矩阵的所有列组合的分量乘积
问题描述
正如标题所说,我想计算两个矩阵的所有列组合的分量乘积。我已经找到了使用numpy.einsum
and的解决方案numpy.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
吗?
解决方案
以下改进将 替换hstack
为调用reshape
。这在高时释放了相当多的内存压力d
。
np.einsum('...j,...l -> ...jl', a, b).reshape(d, -1)
推荐阅读
- mule - 在 Mule 流中记录客户端错误
- java - 正确模拟返回 javax.mail.Message 的服务方法
- ios - 在底部基线处将 UIImageView 与 UILabel 对齐
- elasticsearch - Elasticsearch DSL 过滤聚合和扩展统计信息
- python - SharePlumRequestError:SharePlum HTTP 发布失败
- python - Pandas 用现有值和其他值的总和更新一个 Dataframe
- java - java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat(IIILjava/nio/ByteBuffer;)J
- c# - 如何在 UWP C# 中的 XDocument.Load 方法中提供 xml 文件路径
- ios - 如何多次单击按钮并重复该功能?
- linux - 更改 nvme 设备的控制器数量