在当前项目中,我有一个大型多维形状数组(I,J,K,N)和一个暗 N 方阵。
我需要执行数组的最后一个轴与方阵的矩阵向量乘法。
所以显而易见的解决方案是:
for i in range(I):
for j in range(J):
for k in range(K):
arr[i,j,k] = mat.dot(arr[i,j,k])
但这当然是相当缓慢的。所以我也尝试了 numpy 的 tensordot 但收效甚微。我希望是这样的:
arr = tensordot(mat,arr,axes=((0,1),(3)))
应该可以解决问题,但出现形状不匹配错误。
有人有更好的解决方案或知道如何正确使用 tensordot?
谢谢!