如果我有一个对角线为100Kx1的对角矩阵,我如何得到它的伪逆?我不能将矩阵对角化,然后得到逆,就像我对小矩阵所做的那样,所以这不会起作用
np.linalg.pinv(np.diag(D))
发布于 2017-03-10 06:33:08
取非零元素的倒数。你可以用一个更小的对角矩阵来检查,这就是pinv
所做的。
发布于 2017-03-10 06:17:25
假设你有一个100K x 1的向量,命名为A:
A = np.arange(100000) # will create a vector of 100k x 1
diagnoal_matrix = np.diag(A)
然后,您可以找到对角矩阵的伪逆,如下所示:
np.linalg.pinv(diagnoal_matrix)
示例代码将如下所示:
import numpy as np
A = np.arange(100000)
diagnoal_matrix = np.diag(A)
B = np.linalg.pinv(diagnoal_matrix)
print B
它将输出如下所示:
[[ 0 0 0 ..., 0 0 0]
[ 0 1 0 ..., 0 0 0]
[ 0 0 2 ..., 0 0 0]
...,
[ 0 0 0 ..., 99997 0 0]
[ 0 0 0 ..., 0 99998 0]
[ 0 0 0 ..., 0 0 99999]]
希望它能帮上忙!
https://stackoverflow.com/questions/42711310
复制