首页 > 解决方案 > 使用两个 2D 数组进行数组广播 (Python)

问题描述

我有以下两个数组:

A - 形状DxN

B - 形状NxD

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

我对如何开始有点迷茫。我已经尝试了一些东西,但我的尝试都没有成功。也许这样的事情是不可能的?

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

标签: pythonarraysnumpyarray-broadcasting

解决方案


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


推荐阅读