From: Konrad H. <hi...@cn...> - 2001-07-18 15:22:36
|
> I would appreciate it, if Numpy could handle the Kronecker-product of > two matrices X, Y. > > kron(X,Y) is the Kronecker tensor product of X and Y. import Numeric def kron(x, y): return Numeric.multiply.outer(x, y) > The result is a large matrix formed by taking all possible products > between the elements of X and those of Y. If X is m-by-n > and Y is p-by-q, then kron(X,Y) is m*p-by-n*q. OK, there's one difference: the function shown about returns an array of shape (m, n, p, q). If the input arrays are always 2D, the following will do what you need: import Numeric def kron(x, y): z = Numeric.transpose(Numeric.multiply.outer(x, y), [0, 2, 1, 3]) z.shape = (z.shape[0]*z.shape[1], z.shape[2]*z.shape[3]) return z Konrad. -- ------------------------------------------------------------------------------- Konrad Hinsen | E-Mail: hi...@cn... Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.56.24 Rue Charles Sadron | Fax: +33-2.38.63.15.17 45071 Orleans Cedex 2 | Deutsch/Esperanto/English/ France | Nederlands/Francais ------------------------------------------------------------------------------- |