【发布时间】:2017-11-30 14:10:40
【问题描述】:
我正在尝试学习如何使用 NetworkX,但遇到了问题。 尽管节点和边的函数可以正常工作,但整个图的函数却不能,从而导致 AttributeError。是我用错了还是你能看到其他问题?
前两个有效,但第三个无效。
num_of_nodes = 0
num_of_nodes = graph.number_of_nodes()
print num_of_nodes
num_of_edges = 0
num_of_edges = graph.number_of_edges()
print num_of_edges
density = 0
density = graph.density()
print density
谢谢。
进口:
import networkx as nx
from IPython.display import HTML
import numpy as np
import urllib3
import time
import operator
import socket
import cPickle
import re # regular expressions
from pandas import Series
import pandas as pd
from pandas import DataFrame
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
【问题讨论】:
-
您也可以在这里发布您的导入声明吗?没有它可以做出许多假设。
-
顺便说一句,如果你重新绑定以下行中的变量,为什么要将
num_of_nodes、num_of_edges和density设置为0? -
看docs,
density()似乎是一个函数,而不是一个对象方法。所以你想要density(graph)。 (警告:我之前并没有真正使用过 networkx,我只是按照文档进行。) -
从您的包含中,我假设您需要使用
nx.density(graph)。 -
有时您可以使用
G.method(),其他时候可以使用nx.function(G)。在某种程度上,这只是程序员已经实现的一个问题。作为 networkx 的一般规则,我的经验是,如果您希望某些事情需要进行非平凡的计算,那么它就是nx.function(G)。如果它更像是G的属性,那么您可以使用G.method()[尽管我相信nx.function(G)也会一直存在]。