gpt4 book ai didi

python - numpy einsum : nested dot products

转载 作者:行者123 更新时间:2023-11-30 22:52:48 24 4
gpt4 key购买 nike

我有两个 n-by-k-by-3 数组 ab ,例如,

import numpy as np

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

它喜欢计算所有“三元组”对的点积,即,

np.sum(a*b, axis=2)

更好的方法可能是 einsum ,但我似乎无法弄清楚索引。

这里有什么提示吗?

最佳答案

通过求和减少,您将失去这两个 3D 输入数组上的第三个轴,同时保持前两个轴对齐。因此,与 np.einsum ,我们将使前两个字符串相同,第三个字符串也相同,但在输出字符串符号中会被跳过,表明我们正在沿着两个输入的该轴减少。因此,解决方案是 -

np.einsum('ijk,ijk->ij',a,b)

关于python - numpy einsum : nested dot products,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413913/

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