属性错误:“图形”对象没有属性“节点”

问题描述 投票:0回答:3

我有下面的Python代码来构建knn图,但我有一个错误:AttributeError:'Graph'对象没有属性'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
python graph cluster-computing networkx knn
3个回答
54
投票

如果您使用的是 NetworkX 2.4,请使用

G.nodes[]
而不是
G.node[]
。后一个属性已被弃用。请参阅发行说明


0
投票

我也有同样的问题。我正在使用 Anaconda3。 pip uninstall networkx 在 Anaconda 命令窗口中不起作用。我打开 Anaconda powershell 并执行 pip uninstall networkx 然后返回 Anaconda 命令窗口 pip install networkx==2.3

此后错误已解决


0
投票

这个错误与anaconda和miniconda完全相关。我已从 WSL 中删除了 miniconda,并且不再出现错误。

remove miniconda
pip install networkx==2.3

运行相关代码

© www.soinside.com 2019 - 2024. All rights reserved.