两个二维数组的数组广播 (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)
我有以下两个数组:
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)