[Numpy-discussion] Kronecker product

Nils Wagner nwagner at isd.uni-stuttgart.de
Wed Jul 18 08:55:55 CDT 2001

```"Paul F. Dubois" schrieb:

> Using the outer product you get a matrix that has the right size and
> contents but it is m*n by p*q
> Was that a misprint in your post?
> >>> x
> array([1, 2, 3, 4, 5, 6])
> >>> x.shape=(3,2)
> >>> y = 10*transpose(x)
> >>> y
> array([[10, 30, 50],
>        [20, 40, 60]])
> >>> z = outerproduct(x.flat, y.flat)
> >>> z
> array([[ 10,  30,  50,  20,  40,  60],
>        [ 20,  60, 100,  40,  80, 120],
>        [ 30,  90, 150,  60, 120, 180],
>        [ 40, 120, 200,  80, 160, 240],
>        [ 50, 150, 250, 100, 200, 300],
>        [ 60, 180, 300, 120, 240, 360]])
> >>>
>
> -----Original Message-----
> [mailto:numpy-discussion-admin at lists.sourceforge.net]On Behalf Of Nils
> Wagner
> Sent: Wednesday, July 18, 2001 4:10 AM
> To: numpy-discussion at lists.sourceforge.net
> Subject: [Numpy-discussion] Kronecker product
>
> Hi,
>
> 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.
> 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.
>
> Nils
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at lists.sourceforge.net
> http://lists.sourceforge.net/lists/listinfo/numpy-discussion

>>> a

> array([[1, 2],
>              [3, 4]])

> >>> b

> array([[11, 12],
>               [13, 14]])

> >>> outerproduct(a,b)

> array([[11, 12, 13, 14],
>               [22, 24, 26, 28],
>               [33, 36, 39, 42],
>               [44, 48, 52, 56]])

The Kronecker product  applied to A,B is

kron(A,B) = array([[11,12,22,24],
[13,14,26,28],
[33,36,44,48],
[39,42,52,56]])

How can I rearrange the result of outerproduct to the result of
Kronecker product with numpy ?

Cheers,

Nils

```