Что означает приведенное ниже выражение в python? - PullRequest
0 голосов
/ 04 декабря 2018

Выражение на python: np.ones(len(A)) * (1 - d) / len(A) + d * A.T.dot(P)

Что означает эта строка?

Ниже приведен полный код, где существует это выражение.Этот код является частью алгоритма ранга страницы.

def pagerank(A, eps=0.0001, d=0.85):

    P = np.ones(len(A)) / len(A)

    while True:

        new_P = np.ones(len(A)) * (1 - d) / len(A) + d * A.T.dot(P)

        delta = abs(new_P - P).sum()

        if delta <= eps:

            return new_P

        P = new_P

 

results = pagerank(A)

 

print("Results:", results) # [ 0.13933698,  0.09044235,  0.1300934 ,  0.13148714,  0.08116465, 0.1305122 ,  0.09427366,  0.085402  ,  0.02301397,  0.09427366]

print(sum(results)) # 1.0

print([item[0] for item in sorted(enumerate(results), key=lambda item: -item[1])]) # [0, 3, 5, 2, 6, 9, 1, 7, 4, 8]

...