Я думаю, что вы неверно истолковали примечание к документации по networkx. Хотя, я должен признать, что это могло бы быть сформулировано лучше.
Алгоритм PageRank был разработан для ориентированных графов, но это
алгоритм не проверяет направленность входного графа и
выполнить на неориентированных графах путем преобразования каждого ориентированного ребра в
ориентированный граф к двум ребрам.
Это говорит о том, что алгоритм PageRank предназначен для ориентированных графов, но его можно использовать для неориентированных графов. Для этого он преобразует ненаправленную сеть в направленную сеть, заменяя каждое ребро двумя направленными ребрами (вход и выход).
Поэтому, если вы дадите ему ориентированную сеть, он будет рассчитывать PageRank в соответствии с направленной структурой. Так что либо начните с ненаправленной сети:
import networkx as nx
# Undirected Network
D = nx.Graph()
D.add_weighted_edges_from([('A', 'B', 0.5),('A', 'C', 1)])
# Default max number of iterations failed to converge for me
print nx.pagerank(D, max_iter=200)
# Outputs:
{'A': 0.48648648872844047, 'C': 0.32567567418103965, 'B': 0.18783783709051982}
или, если у вас уже есть направленная сеть, преобразуйте ее в неориентированную:
import networkx as nx
# Directed Network
D = nx.DiGraph()
D.add_weighted_edges_from([('A', 'B', 0.5), ('A', 'C', 1)])
# Convert to undirected
G = D.to_undirected()
# Default max number of iterations failed to converge for me
print nx.pagerank(G, max_iter=200)
# Outputs:
{'A': 0.48648648872844047, 'C': 0.32567567418103965, 'B': 0.18783783709051982}