我使用不同的库,我希望得到一个类似于此函数输出的结果。这是恩达吗? https://graph-tool.skewed.de/static/doc/stats.html#graph_tool.stats.vertex_hist
>>> a=gt.vertex_hist(g, "out")
>>> print(gt.vertex_hist(g, "out"))
[
array([ 5., 32., 85., 148., 152., 182., 160., 116., 53., 25., 23., 13., 3., 2., 1.]),
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
dtype=uint64)
]
以下函数来自 matplotlib.pyplot,返回两个不同变量中的计数和箱:
counts, bins, bars = plt.hist(list(nx.dict(degree(G)).values()),histtype='stepfilled')
//output
[0.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0]
[3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5]
我如何在一个对象/变量中组合两个列表,或者我是否可以理解以下表达式具有哪些值:
for i in range(0,len(a[0])):
v = a[1][i]
c = a[0][i]
对于您的第一个问题,gt.vertex_hist(g, "out")
返回一个包含 2 个元素的list
,每个元素都是一个ndarray
。 文档中也提到了相同的内容。
现在下面的表达方式,我不确定目的:
for i in range(0,len(a[0])):
v = a[1][i]
c = a[0][i]
假设两个 ndarrys 始终具有相同的大小,这只是迭代第一个 ndarray 的长度。它将第一个 ndarray 的当前索引值(即[ 5., 32., 85., 148., 152., 182., 160., 116., 53., 25., 23., 13., 3., 2., 1.]
分配给c
,将第二个 ndarray 的当前索引值分配给v
。但是每次它都会覆盖它,所以v
和c
将只保存最后一个元素,即分别是 1 和 15。我认为他们应该附加它。