跨不同轴相乘 numpy 数组

问题描述 投票:0回答:1

假设我有两个数组:

a = [
     [[-1, 0, 1], 
      [-2, 0, 2],
      [-3, 0, 3]],

     [[-4, 0, 4],
      [-5, 0, 5],
      [-6, 0, 6]]
    ] 

b = [
     [1, 3, 5],
     [7, 11, 13]
    ]

我正在尝试找到最优雅的方式来结束输出

c = [
     [[-1, 0, 1], 
      [-6, 0, 6],
      [-15, 0, 15]],

     [[-28, 0, 28],
      [-55, 0, 55],
      [-78, 0, 78]]
    ] 

numpy 中是否有某种函数可以优雅地处理这个问题?

我浏览了 np.multiply() 和 np.dot() 的文档,但没有找到使用这些函数的好方法。我想我可以做一些丑陋的 for 循环来完成它,但我希望有更优雅的东西。

numpy-ndarray multiplication
1个回答
0
投票

你可以使用广播来做到这一点

首先你需要检查数组的形状是否不相同,以便你可以进行板铸造

c= a[:, :, None] * b[None, :, :]

print(c)
© www.soinside.com 2019 - 2024. All rights reserved.