如何计算一维数组与嵌套数组中每个子数组的点积
实现方案
以下是基于NumPy的几种实现方式,都可以直接得到你需要的输出形状:
方法1:矩阵乘法(最简洁)
利用NumPy的@矩阵乘法运算符,直接将一维数组x转为列向量参与运算,一步得到目标形状结果:
import numpy as np x = np.array([1,4,5]) y = np.array([[1,1,2], [4,2,1], [0,0,1]]) result = y @ x.reshape(-1, 1) print(result) # 输出:[[15] # [17] # [ 5]]
方法2:点积+维度调整
用np.dot计算点积后调整维度即可匹配要求:
result = np.dot(y, x).reshape(-1, 1)
方法3:广播乘后求和
开启keepdims参数保持输出的二维结构,无需额外调整维度:
result = np.sum(x * y, axis=1, keepdims=True)
三种方法输出结果完全一致,均符合预期要求。
内容的提问来源于stack exchange,提问作者user13467695
相关产品推荐
相关产品推荐

