我正在开发一个 python 项目并使用 numpy。我经常需要通过单位矩阵来计算矩阵的 Kronecker 积。这些是我代码中的一个很大的瓶颈,所以我想优化它们。我必须服用两种产品。第一个是:
np.kron(np.eye(N), A)
Run Code Online (Sandbox Code Playgroud)
只需使用scipy.linalg.block_diag就可以很容易地优化这一点。该产品相当于:
la.block_diag(*[A]*N)
Run Code Online (Sandbox Code Playgroud)
这大约快 10 倍。但是,我不确定如何优化第二种产品:
np.kron(A, np.eye(N))
Run Code Online (Sandbox Code Playgroud)
我可以使用类似的技巧吗?