使用Python计算数组中矩阵的行列式

1 投票
2 回答
1691 浏览
提问于 2025-04-21 02:17

假设你有一个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

撰写回答