Beachten Sie, dass numpy.linalg.svd
und scipy.linalg.svd
in absteigender Reihenfolge zurückgegeben werden, während scipy.sparse.linalg.svds
in aufsteigender Reihenfolge zurückgegeben wird. Ich wurde süchtig.
# coding: utf-8
import numpy as np
import scipy.linalg
import scipy.sparse.linalg
x = np.random.rand(7, 7)
U, S1, V = np.linalg.svd(x)
print S1
U, S2, V = scipy.linalg.svd(x)
print S2
U, S3, V = scipy.sparse.linalg.svds(x)
print S3
# S1,Gleich S2
print S3[::-1]
http://stackoverflow.com/questions/24498854/singular-values-sorted-in-descending-order-using-svds-from-scipy-sparse-linalg
A. Schreiben Sie selbst (ich hatte keine Möglichkeit abzusteigen)