nin*_*ino 19 python graph cluster-computing knn networkx
我有以下 python 代码来构建 knn 图,但我有一个错误:AttributeError: 'Graph' object has no attribute 'node'。似乎 nx.Graph() 没有节点属性,但我不知道我应该用它替换什么。
import networkx as nx
def knn_graph(df, k, verbose=False):
points = [p[1:] for p in df.itertuples()]
g = nx.Graph()
if verbose: print ("Building kNN graph (k = %d)" % (k))
iterpoints = tqdm(enumerate(points), total=len(points)) if verbose else enumerate(points)
for i, p in iterpoints:
distances = map(lambda x: euclidean_distance(p, x), points)
closests = np.argsort(distances)[1:k+1] # second trough kth closest
for c in closests:
g.add_edge(i, c, weight=distances[c])
g.node[i]['pos'] = p
return g
Run Code Online (Sandbox Code Playgroud)
小智 35
如果您使用的是 NetworkX 2.4,请使用 G.nodes[] 而不是 G.node[]。由于后一个属性已被弃用。请参阅(https://networkx.github.io/documentation/stable/release/release_2.4.html#deprecations)。