【发布时间】:2012-10-26 00:20:35
【问题描述】:
我有一个大的 numpy 数组 arr,形状为 (N, D, M, D),其中 D 是两个或三个。该数组可以被认为是在N 和M 维度中被块在一起的(D,D) 矩阵块。我希望采用每个(D,D) 矩阵的行列式:
out = np.empty((N,M))
for i in xrange(N):
for j in xrange(M):
out[i,j] = np.linalg.det(arr[i,:,j,:])
唯一的问题是np.linalg.det 没有特殊情况的小矩阵,因此每个块的完整 BLAS 调用和 LU 分解也是如此。事实上,对于一个 2 x 2 矩阵 np.linalg.det 在我最近的 Core i7 系统上需要大约 40us。我有哪些方法可以提高该片段的性能?
【问题讨论】:
标签: python numpy linear-algebra