2
我有3軸的數組:如何使用numpy的einsum獲取子數組的點積?
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,但我無法實現它。
謝謝!這很有效,但它將我的初始數組的形狀從(x,y,z)更改爲(y,z,x)。 –
它看起來像改變「ikl」到「kli」是修復。 –
是的,輸出數組中的索引可以重新排列。由於您的尺寸是相同的,因此順序上的差異並不明顯。 – hpaulj