numpy 矩阵乘法

发布于 2024-09-25 04:05:17 字数 342 浏览 3 评论 0原文

我试图弄清楚如何在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩一世无双 2024-10-02 04:05:17

利用广播

(a.T * b).T

Taking advantage of broadcasting:

(a.T * b).T
弃爱 2024-10-02 04:05:17

转置 a 的替代方法是更改​​ b 的形状,以使广播给出您正在寻找的结果:

a * b[:, np.newaxis]

请注意,将新轴添加到 b 会给出以下数组:

array([[11],
       [12]])

The alternative to transposing a is to change the shape of b to make broadcasting give the result you're looking for:

a * b[:, np.newaxis]

Note that adding the new axis to b gives the following array:

array([[11],
       [12]])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文