我试图计算numpy数组M的行列式,np.shape(M)=(N,L,L)是这样的:
import numpy as np
M = np.random.rand(1000*10*10).reshape(1000, 10, 10)
dm = np.zeros(1000)
for _ in xrange(len(dm)):
dm[_] = np.linalg.det(M[_])
Run Code Online (Sandbox Code Playgroud)
有没有循环的方法?"N"比"L"大一些数量级.我想到了类似的东西:
np.apply_over_axes(np.linalg.det(M), axis=0)
Run Code Online (Sandbox Code Playgroud)
做我想要的更快的方式吗?我想循环开销是一个性能瓶颈,因为小矩阵的行列式是一个相对便宜的操作(或者我错了?).