[PYTHON] scipy.sparse.linalg.svds gibt einzelne Werte in aufsteigender Reihenfolge zurück

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.

Code für die Funktionsprüfung

# 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]

Wenn du absteigen willst

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)

Recommended Posts

scipy.sparse.linalg.svds gibt einzelne Werte in aufsteigender Reihenfolge zurück
[Python] Ermittelt den Rang der Werte in der Liste in aufsteigender / absteigender Reihenfolge
[Python] So geben Sie Listenwerte der Reihe nach aus
Natürliche Ordnung in Python