#python #pandas #numpy #matrix
#python #pandas #numpy #матрица
Вопрос:
Итак, у меня есть небольшая программа, в которой я хочу вызвать функцию, когда выбранный элемент матрицы равен 1, но когда я выполняю программу, она не выводится каждый раз, когда матрица имеет 1 в качестве элемента. Это мой код:
import numpy as np
import pandas as pd
Name = ["A", "B", "C", "D", "E"]
X = 0
S2 = pd.DataFrame([
[X, 1, 0, 1, 1],
[0, X, 1, 0, 0],
[0, 0, X, 1, 0],
[0, 0, 0, X, 1],
[0, 0, 0, 0, X]
], index=Name, columns=Name)
I_Max_array = np.zeros((1,200))
def function1():
Connections = np.zeros((7, 3), dtype=np.object)
Connections[0][0] = "Connection"
Connections[0][1] = "Line-Type"
Connections[0][2] = "I-Max"
for i in range(0, len(S2)):
column_name = S2.index[i]
for j in range (0, i):
if S2[column_name][j] == 1:
row_name = S2.dtypes.index[j]
connection_name = str(row_name) "-" str(column_name)
print("calculate connection " str(connection_name))
for time in range(0, I_Max_array.size):
I_Max = calculate(time)
Connections[i 1][2] = I_Max
return Connections
def calculate(time):
I_Max = 2*2
I_Max_array[0][Time] = I_Max
return I_Max_array
I_Max = function1()
Программа просто выводит 1 строку, где матрица равна 1, и это соединение A-B, что также странно, так это тот факт, что когда я просто запускаю внутреннюю программу function1(), она, кажется, получает все допустимые соединения, но не сохраняет их в нужной строке соединений
Ответ №1:
На самом деле, после первой распечатки возникает ошибка выполнения, и трассировка стека завершается
NameError: name 'Time' is not defined
Взгляните на функцию вычисления.
Его параметром является time со строчной буквой «t».
Но внутри этой функции у вас есть Time с заглавной буквой «T».
Меняйте время от времени, и ваш код должен выполняться без ошибок.