Преобразование диаграммы Диониса в массив numpy без петли - PullRequest
0 голосов
/ 09 марта 2020

Библиотека dionysus python создает «диаграмму постоянства» после вычисления постоянной гомологии. (минимальный воспроизводимый пример можно найти в конце поста)

>>> dgm
Diagram with 6 points

>>> dgm[0]
(0.049009,inf)

>>> list(dgm)
[(0.049009,inf),
 (0.0515362,0.257068),
 (0.0534305,0.490787),
 (0.0614555,0.414525),
 (0.231776,0.311284),
 (0.247975,0.401911)]

Теперь, хотя записи диаграммы выглядят как кортежи, это не так. К ним можно получить доступ по значениям «рождения» и «смерти». Например,

>>> dgm[0].birth
0.049009

>>> dgm[0].death
inf

Итак, np.array(dgm) не преобразует его в массив с двумя столбцами. Я использую

dgmList = []
for point in dgm:
   dgmList.append([point.birth, point.death])
dgmArray = np.array(dgmList)

, но это очень неэффективно, особенно когда диаграмма большая. Есть ли более быстрое решение для создания массива numpy из диаграммы?

Редактировать: Ниже приведен минимальный воспроизводимый пример для переменной dgm.

a = np.random.random((10,10))
f_lower_star = d.fill_freudenthal(a)
p = d.homology_persistence(f_lower_star)
diagrams = d.init_diagrams(p, f_lower_star)
dgm = diagrams[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...