ValueError: график должен иметь два измерения, .ndim и debug показывают два измерения? - PullRequest
0 голосов
/ 16 апреля 2019

Я запускаю фрагмент кода, который должен получить (или сгенерировать) набор точек, выполнить триангуляцию для них, а затем найти кратчайший путь между двумя точками, все на python с использованием Scipy.

Таким образом, я получаю свои очки, запускаю алгоритм библиотеки Делоне (который дает мне триангуляцию) и передаю его в shortest_path.

Проблема в том, что я получаю ошибку из библиотеки.А именно,

ValueError: график должен иметь два измерения

, начиная с csgraph_masked_from_dense.Использование отладки или graph.ndim подтверждает, что график действительно является 2D.Я даже вошел в код библиотеки, прямо перед csgraph_masked_from_dense и проверил, и, действительно, ему дан 2D-график.

import scipy.spatial
import scipy.sparse

#
# tedious code imputing/generating m = list of lists with point coordinates
#

dela = scipy.spatial.Delaunay(m) # this works fine

paths = scipy.sparse.csgraph.shortest_path(dela) #this throws the following error

Traceback (последний вызов был последним):

Файл "C: \ Path \ вышеуказанный_код.py", строка 10, в paths = scipy.sparse.csgraph.shortest_path (dela)

Файл "_shortest_path.pyx", строка 157, в scipy.sparse.csgraph._shortest_path.shortest_path

Файл "C: \ Path \ Python \ Python37-32 \ lib \ site-packages \ scipy \ sparse \ csgraph_validation.py", строка 44, в validate_graph infinity_null = infinity_null)

Файл "_tools.pyx", строка 141, в scipy.sparse.csgraph._tools.csgraph_masked_from_dense

ValueError: граф должен иметь два измерения

...