У меня проблема, и я надеялся, что вы мне поможете. Поэтому я пишу код для расчета длины кратчайшего пути с использованием networkx и numpy, поэтому я создаю для этого функцию
def costos(red, precios):
pathlength = []
for i in redes: #3d array with 100 2D arrays
graph = nx.from_numpy_array(i, create_using = nx.DiGraph)
pathlength.append(nx.shortest_path_length(graph, 0, 1, weight = 'weight'))
y = np.array(pathlenght)
z = np.shape(y)
return y, z
, и когда я печатаю результат, я получаю следующий вывод
[25, 10, 32, ..., 20] #A 1D array with 100 elements (shortest path length)
(100,) #Shape of the 1D array
Я хочу преобразовать этот одномерный массив размером (100,) в двумерный массив размера (10, 10), я знаю, что могу использовать np.reshape
, но когда я добавляю это в моя функция, как это
for i in redes: #3d array with 100 arrays
graph = nx.from_numpy_array(i, create_using = nx.DiGraph)
pathlength.append(nx.shortest_path_length(graph, 0, 1, weight = 'weight'))
y = np.array(pathlenght)
z = np.shape(y)
w = np.reshape(y, (10,10))
Я получаю следующее значение Ошибка
не может преобразовать массив размера 1 в форму (10,10)
Что я делаю не так? Я пробовал разные вещи, но, похоже, ничего не работает, поэтому любая помощь будет оценена, спасибо!