两个二维数组的数组广播 (Python)

Array Broadcasting with Two 2D Arrays (Python)

我有以下两个数组:

A - 形状为 DxN

B - 形状 NxD

我正在尝试对 A 和 B 进行逐元素乘法,并最终生成一个 NxDxD 数组,使用数组广播。

我有点不知道如何开始。我已经尝试了一些东西,但是 none 我的尝试都取得了成功。也许这样的事情是不可能的?

在某些情况下,我对 Python 比较陌生,正在尝试编写自己的 ML algorithm 实现。我目前的方法将涉及进行此计算。

如果你使用的是 numpy,你所要做的就是:

result = numpy.dot(A, B)

如果出现错误,例如维度未对齐,则必须通过以下方式转换矩阵:

result = numpy.dot(A, B.T)

这应该可以完成工作

import numpy as np

a = np.array([[2, 3],
            [4, 3],
            [2, 4]])

b = np.array([[2, 3, 4],
              [3, 4, 5]])

print(np.dot(a, b).shape)

returns (3, 3)