numpy 矩阵乘法
我试图弄清楚如何在 numpy 中进行一种标量矩阵乘法。
我已经
a = array(((1,2,3),(4,5,6)))
b = array((11,12))
并且我想做的
a op b
结果是
array(((1*11,2*11,3*11),(4*12,5*12,6*12))
现在我正在使用以下表达式
c= a * array((b, b, b)).transpose()
看来必须有一种更有效的方法来做到这一点
I am trying to figure out how to do a kind of scalar matrix multiplication in numpy.
I have
a = array(((1,2,3),(4,5,6)))
b = array((11,12))
and i want to do
a op b
to result in
array(((1*11,2*11,3*11),(4*12,5*12,6*12))
right now I am using the following expression
c= a * array((b, b, b)).transpose()
It seems like there must be a more efficient way of doing this though
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
利用广播:
Taking advantage of broadcasting:
转置
a
的替代方法是更改b
的形状,以使广播给出您正在寻找的结果:请注意,将新轴添加到 b 会给出以下数组:
The alternative to transposing
a
is to change the shape ofb
to make broadcasting give the result you're looking for:Note that adding the new axis to b gives the following array: