Los*_*st1 1 python numpy kronecker-product
我的矩阵:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
Run Code Online (Sandbox Code Playgroud)
我想要c作为:
np.array([[5, 10, 6, 12], [15, 20, 18, 24]])
Run Code Online (Sandbox Code Playgroud)
逐项乘以a,b然后将它们连接起来。如何在没有双循环的情况下有效地做到这一点?
您正在寻找的是克罗内克产品。在 Numpy 中,您可以通过以下方式获取它numpy.kron():
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([5, 6]) # May also be 2D, as in the question
c = np.kron(b, a)
print(c)
# >>> [[ 5 10 6 12]
# [15 20 18 24]]
Run Code Online (Sandbox Code Playgroud)
这里参数的顺序很kron()重要:写作kron(a, b)会在 中产生相同的值c,但顺序不同,即[[5, 6, 10, 12], [15, 18, 20, 24]]。