使用Python计算数组中矩阵的行列式
假设你有一个numpy数组,这个数组里面装的是多个矩阵,比如说它的维度是(n,m,m)。可以把它想象成有n个矩阵,每个矩阵的大小都是mxm。有没有办法(不使用循环)一次性计算出每个矩阵的行列式呢?
2 个回答
0
你可以使用numpy.linalg.det
来计算numpy数组的行列式,下面是一个示例:
import numpy as np
N = 10
M = 4
# Generate N random MxM arrays
arrays = np.array([np.random.random((M,M)) for _ in range(N)])
dets = np.linalg.det(arrays)
print(dets)
# array([-0.20353081, 0.01632881, -0.17733447, -0.01518313, -0.23457492,
# 0.00284906, 0.16210605, 0.03887231, 0.07726804, -0.05107936])
在上面的例子中,我有10个4x4的矩阵(这些矩阵是随机生成的,用来做示范)。dets
是一个包含10个数字的numpy数组,这些数字就是你的行列式。
0
在numpy库中,有一个叫做linalg.det的函数:
举个例子:
import numpy as np
m = np.array([[-2,2,-3],[-1,1,3],[2,0,-1]])
np.linalg.det(m)
你可以在这里查看linalg.det的文档: http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.det.html