【问题标题】:python ndarray what are return valuespython ndarray什么是返回值
【发布时间】:2020-05-14 22:37:18
【问题描述】:

我使用了一个不同的库,我希望得到类似这个函数输出的结果。这是一个ndarray吗? 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,返回两个不同变量中的计数和 bin:

    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]

【问题讨论】:

    标签: python python-3.x matplotlib histogram numpy-ndarray


    【解决方案1】:

    对于您的第一个问题,gt.vertex_hist(g, "out") 返回一个带有 2 个元素的 list,每个元素都是一个 ndarray。文档中也提到了这一点。

    现在下面的表达式,我不确定目的:

    for i in range(0,len(a[0])):
        v = a[1][i]
        c = a[0][i]
    

    假设两个 ndarris 总是具有相同的大小,这只是迭代第一个 ndarray 的长度。它将第一个 ndarray 的当前索引值,即[ 5., 32., 85., 148., 152., 182., 160., 116., 53., 25., 23., 13., 3., 2., 1.] 分配给c,将第二个 ndarray 的当前索引值分配给v。但是每次它都覆盖它,所以vc 只会分别保存最后一个元素,即 1 和 15。我认为他们应该附加它。

    【讨论】:

    • len(a[0]) 不是ndarray中第一个数组的长度吗?而 a[0 或 1 表示从元素中获取哪个数组] [要获取哪个元素]?
    • 是的,len(a[0]) 是 ndarray 中第一个数组的长度,但两个 ndarray 的长度相同。所以我的范围从 [0, 15] 这里(包括两者)。你问题的第二部分也是正确的
    猜你喜欢
    • 2011-09-21
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多