numpy.kron
numpy.kron(a, b)
Функция kron() вычисляет произведение Кронекера двух массивов.
Произведение кронекера для двух матриц A и B с формами A.shape = (m, n) и B.shape = (p, q) обозначается символом \(A \otimes B \), а результатом является блочная матрица с формой (m*p, n*q), которая вычисляется по правилу:
$${\displaystyle A\otimes B={\begin{bmatrix}a_{11}B&\cdots &a_{1n}B\\\vdots &\ddots &\vdots \\a_{m1}B&\cdots &a_{mn}B\end{bmatrix}}}$$
Данное правило может быть обобщено на массивы с любой размерностью.
-
- a, b - массивы NumPy или подобные массивам объекты.
- Это могут быть числа, одномерные, двумерные или многомерные массивы.
-
- результат - массив NumPy или число
- Произведение Кронекера указанных массивов.
Примеры
>>> import numpy as np
>>>
>>> np.kron(5, [1, 2])
array([ 5, 10])
>>>
>>> np.kron([3, 4], [1, 2])
array([3, 6, 4, 8])
>>>
>>> a = [[1, 2], [3, 4]]
>>>
>>> np.kron([3, 4], a)
array([[ 3, 6, 4, 8],
[ 9, 12, 12, 16]])
>>>
>>> a = [[4, 3], [2, 1]]
>>>
>>> np.kron(a, b)
array([[[ 0, 4, 0, 3],
[ 8, 12, 6, 9],
[ 0, 2, 0, 1],
[ 4, 6, 2, 3]],
[[16, 20, 12, 15],
[24, 28, 18, 21],
[ 8, 10, 4, 5],
[12, 14, 6, 7]],
[[32, 36, 24, 27],
[40, 44, 30, 33],
[16, 18, 8, 9],
[20, 22, 10, 11]]])
>>>
>>> c = np.arange(6).reshape(1, 2, 3)
>>> c
array([[[0, 1, 2],
[3, 4, 5]]])
>>>
>>> np.kron(a, c)
array([[[ 0, 4, 8, 0, 3, 6],
[12, 16, 20, 9, 12, 15],
[ 0, 2, 4, 0, 1, 2],
[ 6, 8, 10, 3, 4, 5]]])