Python - Matrice produit extérieur

Donné deux matrices

A: m * r
B: n * r

Je veux générer une autre matrice C: m * n, avec chaque entrée C_ij une matrice calculée par le produit extérieur de A_i et B_j.

Par exemple,

A: [[1, 2],
    [3, 4]]

B: [[3, 1],
    [1, 2]]

donne

C: [[[3, 1],  [[1 ,2],
     [6, 2]],  [2 ,4]],
     [9, 3],  [[3, 6],
     [12,4]],  [4, 8]]]

Je peux le faire à l'aide de boucles, comme

    for i in range (A.shape(0)):
      for j in range (B.shape(0)):
         C_ij = np.outer(A_i, B_j)

Je me demande Si il y a un vectorisées façon de faire ce calcul pour l'accélérer?

  • Voulez-vous un 4D, (m, n, r, r)forme de tableau, ou voulez-vous un 2D, (m, n)forme de tableau de object dtype où chaque élément est un autre tableau? Je recommande fortement la première option, mais votre description des sons plus proche de la seconde.
  • Désolé pour la confusion, mais je préfère la première, 4D (m, n, r, r)forme de tableau.
InformationsquelleAutor Lei Yu | 2014-07-19