scipy.linalg.

khatri_rao#

scipy.linalg.khatri_rao(a, b)[Quelle]#

Khatri-Rao-Produkt

Ein spaltenweises Kronecker-Produkt zweier Matrizen

Die Dokumentation wurde unter der Annahme verfasst, dass die Array-Argumente bestimmte „Kern“-Formen haben. Array-Argumente dieser Funktion können jedoch zusätzliche „Batch“-Dimensionen vorangestellt haben. In diesem Fall wird das Array als Stapel von niedrigdimensionalen Schnitten behandelt; siehe Gestapelte lineare Operationen für Details.

Parameter:
a(n, k) array_like

Eingabearray

b(m, k) array_like

Eingabearray

Rückgabe:
c: (n*m, k) ndarray

Khatri-Rao-Produkt von a und b.

Hinweise

Die mathematische Definition des Khatri-Rao-Produkts ist

\[(A_{ij} \bigotimes B_{ij})_{ij}\]

was das Kronecker-Produkt jeder Spalte von A und B ist, z.B.

c = np.vstack([np.kron(a[:, k], b[:, k]) for k in range(b.shape[1])]).T

Beispiele

>>> import numpy as np
>>> from scipy import linalg
>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> b = np.array([[3, 4, 5], [6, 7, 8], [2, 3, 9]])
>>> linalg.khatri_rao(a, b)
array([[ 3,  8, 15],
       [ 6, 14, 24],
       [ 2,  6, 27],
       [12, 20, 30],
       [24, 35, 48],
       [ 8, 15, 54]])