首页 > 解决方案 > Numpy 数组乘法

问题描述

尽管我确信之前有人问过这个问题,但我似乎在 stackoverflow 上找不到这个问题。

我有两个 numpy 数组,如下所示:

a = np.ones(shape = (2,10))
b = np.ones(2)

我想将 a 的 10 的第一行乘以 b 中的第一个数字,将第二行乘以第二个数字。我可以使用如下列表来做到这一点:

np.array([x*y for x,y in zip(b,a)])

我想知道是否有一种方法可以在 numpy 中执行此操作,这与 list 方法类似。

我知道我可以将 a 重塑为 (1,2,10) 并将 b 重塑为 (2,1) 以有效地实现这一目标 - 这是唯一的解决方案吗?或者是否有一种 numpy 方法可以在不手动重塑的情况下做到这一点。

标签: pythonarraysnumpy

解决方案


这可能是您正在寻找的:

a*np.tile(np.expand_dims(b,axis=1),(1,10))

如果要使用自动 numpy 广播,则需要先重塑 b:

np.multiply(a, b.reshape(2,1))

推荐阅读