如何使用Numpy实现:短一维向量与长向量各元素分别相乘
Numpy实现一维向量与另一向量各元素的逐元素乘法
你可以通过以下几种简洁的方式实现需求,核心利用Numpy的广播机制或内置函数:
方法1:通过维度重塑(reshape)实现广播
给向量B增加一个维度,使其形状从(3,)变为(3,1),之后与A相乘时Numpy会自动触发广播机制,完成对应元素的乘法:
import numpy as np A = np.array([1, 2]) B = np.array([10, 20, 30]) result = B.reshape(-1, 1) * A print(result)
方法2:用np.newaxis快速增加维度
np.newaxis是Numpy中用于扩展数组维度的便捷方式,效果和reshape一致:
result = B[:, np.newaxis] * A print(result)
方法3:直接使用np.outer函数
Numpy的outer函数专门用于计算两个向量的外积,正好匹配你的需求场景:
result = np.outer(B, A) print(result)
以上三种方法的输出结果均为:
[[10 20] [20 40] [30 60]]
内容的提问来源于stack exchange,提问作者Oliver Mohr Bonometti
相关产品推荐
相关产品推荐

