Py学习  »  Python

Python张量矩阵乘法

RaviTej310 • 6 年前 • 2009 次点击  

A = [[[a,b], [c,d]], [[e,f], [g,h]]]

以及矩阵

B = [[1,2], [3,4]]

我需要得到

C = [[a*1+e*2,b*1+f*2], [c*3+g*4,d*3+h*4]]

如何使用矩阵形式的numpy进行此操作?我已经调查过了 np.tensordot() 但在这种情况下似乎没有帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55149
文章 [ 1 ]  |  最新文章 6 年前
Sayandip Dutta
Reply   •   1 楼
Sayandip Dutta    6 年前

你可以试试这个:

>>> import numpy as np
>>> a = np.arange(1,9).reshape(2,2,2)
>>> a
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])
>>> b = np.arange(1,5).reshape(2,2)
>>> b
array([[1, 2],
       [3, 4]])
>>> (a * b[None,:,:].T).sum(axis = 0)
array([[11, 14],
       [37, 44]])

>>> b[None,:,:]
array([[[1, 2],
        [3, 4]]])
>>> b[None,:,:].T
array([[[1],
        [3]],

       [[2],
        [4]]])