具有两个2D数组的数组广播(Python)

时间:2020-06-20 18:46:39

标签: python arrays numpy array-broadcasting

我有以下两个数组:

A-形状为 DxN

B-形状为 NxD

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

我对如何开始感到迷茫。我已经尝试了几件事,但是没有任何尝试。也许这样的事情是不可能的?

在某些情况下,我是Python的新手,正在尝试编写自己的ML algorithm实现。我目前的方法是进行此计算。

1 个答案:

答案 0 :(得分:0)

如果您使用的是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)

返回(3,3)