gpt4 book ai didi

python - numpy einsum 的外积计算

转载 作者:行者123 更新时间:2023-12-04 02:36:26 25 4
gpt4 key购买 nike

我正在尝试潜入 einsum符号。此 question and answers帮了我很多。

但是现在我不能掌握einsum的机器计算外积时:

x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
np.einsum('i,j->ij', x, y)

array([[ 4., 5., 6.],
[ 8., 10., 12.],
[12., 15., 18.]])

那个 answer给出以下规则:

By repeating the label i in both input arrays, we are telling einsum that these two axes should be multiplied together.



如果我们没有在 np.einsum('i,j->ij', x, y) 中提供任何重复的轴标签,我无法理解这种乘法是如何发生的?

你能给出一个步骤, np.einsum在这个例子中?

或者更广泛的问题如何 einsum当没有给出匹配的轴标签时有效吗?

最佳答案

np.einsum('i,j->ij', x, y) 的输出中, 元素 [i,j]只是元素 i 的乘积在 x和元素 jy .换句话说,np.einsum('i,j->ij', x, y)[i,j] = x[i]*y[j] .

np.einsum('i,i->i', x, y) 比较被元素 i输出为 x[i]*y[i] :

np.einsum('i,i->i', x, y)

[ 4 10 18]

如果输入中的标签在输出中丢失,则意味着输出已经计算了沿丢失标签轴的总和。这是一个简单的例子:
np.einsum('i,j->i', x, y)

[15 30 45]

这里的标签 j输入中缺少输出,相当于沿 axis=1求和(对应标签 j):
np.sum(np.einsum('i,j->ij', x, y), axis=1)

[15 30 45]

关于python - numpy einsum 的外积计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61634180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com