我有一个包含3个轴的数组:
a = [[[1,2,3], [4,5,6], [7,8,9]],
[[9,8,7], [6,5,4], [3,2,1]],
[[1,1,1], [2,2,2], [3,3,3]]]
我想使用einsum非迭代地将每个向量的点积取在' a'用矩阵:
m = [[a, b, c],
[d, e, f],
[g, h, i]]
像这样
product = [[dot(m,a[1,1,:]), dot(m,a[1,2,:]), dot(m,a[1,3,:])],
[dot(m,a[2,1,:]), dot(m,a[2,2,:]), dot(m,a[2,3,:])],
[dot(m,a[3,1,:]), dot(m,a[3,2,:]), dot(m,a[3,3,:])]]
获得一个与初始数组相同形状的数组' a'。我一直试图使用einsum,但我无法让它运转起来。
答案 0 :(得分:2)
这应该可以解决问题,假设您使用m
的最后一个'{1}}'点''的最后一个维度:
a