numpy - Computing the Fiedler Vector in Python -
how find fielder vector of laplacian (l) in python?
i can eigenvalues , eigenvectors using: eigenvalues, eigenvectors = linalg.eig(l)
i assume python not return eigenvalues in order.
do take 2nd largest eigenvalue , match corresponding eigenvector (matching in index)?
when ordering eigenvalues, how deal negative values? ordering absolute magnitude?
thanks help
well, don't know math involved, i'll best.
if check documentation, linalg.eig
in fact return eigenvectors in same order corresponding eigenvalues.
i might like:
w, v = linalg.eig(l) seen = {} unique_eigenvalues = [] (x, y) in zip(w, v): if x in seen: continue seen[x] = 1 unique_eigenvalues.append((x, y)) fiedler = sorted(unique_eigenvalues)[1][1]
by default python sorts tuples first element, second , on, , numbers ordered way you'd expect (-2 < -1 etc.). assumes eigenvalues aren't complex of course.
also, i've assumed there might duplicate eigenvalues , fiedler vector eigenvector associated second smallest unique eigenvalue.
Comments
Post a Comment