如果我有一个对角线矩阵,对角线为100Kx1,我怎样才能获得伪逆? 我不能对矩阵进行对角化,然后就像我对小矩阵所做的那样得到逆,所以这不会起作用
np.linalg.pinv(np.diag(d))
答案 0 :(得分:2)
只取非零元素的倒数。您可以使用较小的对角矩阵检查这是pinv
的作用。
答案 1 :(得分:-1)
假设您有一个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]]
希望它有所帮助!