python ndarray какие возвращаемые значения - PullRequest
1 голос
/ 29 января 2020

Я использую другую библиотеку и хочу получить результат, подобный выводу этой функции. Это 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, возвращает счетчики и бины в двух различных переменных:

    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]

1 Ответ

1 голос
/ 29 января 2020

Для вашего первого вопроса gt.vertex_hist(g, "out") возвращает list с 2 элементами, и каждый из них является ndarray. то же самое упомянуто в документации.

Теперь следующее выражение, я не уверен в цели:

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

Предполагая, что оба ndarrys всегда будут иметь одинаковый размер, это просто итерации по длине первого ndarray. Это присваивает текущее значение индекса первого ndarray i, e [ 5., 32., 85., 148., 152., 182., 160., 116., 53., 25., 23., 13., 3., 2., 1.] для c, а текущее значение индекса второго ndarray для v. Но каждый раз, когда он перезаписывает его, v и c будут содержать только последние элементы, то есть 1 и 15 соответственно. Я думаю, что они должны добавить это вместо.

...