Ada*_*dam 4 python arrays numpy matrix
我尝试将 2 个矩阵 x,y 与形状 (41) 和 (41,6) 相乘,因为它应该将单个矩阵广播到多维度中的每个箭头
我想这样做:
x*y
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
ValueError: operands could not be broadcast together with shapes (41,6) (41,)
Run Code Online (Sandbox Code Playgroud)
我有什么想念的东西可以让这一切成为可能吗?
广播涉及2个步骤
为所有数组提供相同的维数
扩展1维度以匹配其他数组
根据您的输入
(41,6) (41,)
Run Code Online (Sandbox Code Playgroud)
一个是 2d,另一个是 1d;广播可以改变 1d 为(1, 41),但它不会自动向另一个方向扩展(41,1)。
(41,6) (1,41)
Run Code Online (Sandbox Code Playgroud)
(41,41) 或 (6,41) 都不匹配。
所以你需要改变你的yto(41,1)或 the xto(6,41)
x.T*y
x*y[:,None]
Run Code Online (Sandbox Code Playgroud)
当然,我假设您想要逐个元素相乘,而不是np.dot矩阵乘积。