當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python numpy kron用法及代碼示例

本文簡要介紹 python 語言中 numpy.kron 的用法。

用法:

numpy.kron(a, b)

兩個數組的克羅內克積。

計算 Kronecker 乘積,這是一個由第二個數組的塊按第一個數組縮放的複合數組。

參數

a, b array_like

返回

out ndarray

注意

該函數假設維數ab相同,如有必要,請在最小的前麵加上 1。如果a.shape = (r0,r1,..,rN)b.shape = (s0,s1,...,sN),克羅內克積有形狀(r0*s0, r1*s1, ..., rN*SN).元素是元素的乘積ab,由以下人員明確組織:

kron(a,b)[k0,k1,...,kN] = a[i0,i1,...,iN] * b[j0,j1,...,jN]

其中:

kt = it * st + jt,  t = 0,...,N

在常見的二維情況下(N=1),可以可視化塊結構:

[[ a[0,0]*b,   a[0,1]*b,  ... , a[0,-1]*b  ],
 [  ...                              ...   ],
 [ a[-1,0]*b,  a[-1,1]*b, ... , a[-1,-1]*b ]]

例子

>>> np.kron([1,10,100], [5,6,7])
array([  5,   6,   7, ..., 500, 600, 700])
>>> np.kron([5,6,7], [1,10,100])
array([  5,  50, 500, ...,   7,  70, 700])
>>> np.kron(np.eye(2), np.ones((2,2)))
array([[1.,  1.,  0.,  0.],
       [1.,  1.,  0.,  0.],
       [0.,  0.,  1.,  1.],
       [0.,  0.,  1.,  1.]])
>>> a = np.arange(100).reshape((2,5,2,5))
>>> b = np.arange(24).reshape((2,3,4))
>>> c = np.kron(a,b)
>>> c.shape
(2, 10, 6, 20)
>>> I = (1,3,0,2)
>>> J = (0,2,1)
>>> J1 = (0,) + J             # extend to ndim=4
>>> S1 = (1,) + b.shape
>>> K = tuple(np.array(I) * np.array(S1) + np.array(J1))
>>> c[K] == a[I]*b[J]
True

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.kron。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。