且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在NumPy中将按元素乘法和矩阵乘法与多维数组相结合

更新时间:2021-08-21 03:05:01

可能的解决方案是:

C = np.sum(A[:,:,:,np.newaxis]*B[:,np.newaxis,:,:],axis=2)

但是:

  1. 仅当K比d和N大得多时,它才比vstack方法更快.
  2. 这可能是一些内存问题:在上述解决方案中,分配了KxdxNxd数组(即所有可能的乘积对,求和之前).实际上,由于内存不足,我无法使用大的K,d和N进行测试.

顺便说一句,请注意:

C = np.dot(A, B)[:, :, 0, :]

没有给出正确的结果.之所以被骗,是因为我首先通过将结果与此np.dot命令给出的结果进行比较来检查我的方法.

does not give the correct result. It got me tricked because I first checked my method by comparing the results to those given by this np.dot command.