Создание матрицы смежности из матрицы n в Python - PullRequest
0 голосов
/ 18 апреля 2019

Мне нужно вычислить обратную матрицу для (I-Q), которая может дать мне время на поглощение (Q_inv_F в следующем коде). И мне нужно отследить числовое значение, связанное с положением каждой строки и столбца, чтобы вернуть состояние, на которое ссылается число. Но это привело к тому, что матрица размером n на n дала мне только индекс и имя столбца в качестве числа, когда мне нужно иметь его в кадре данных, таком как Abs_t_F, чтобы перезвонить в исходное состояние для следующих шагов. Коды, которые я использую сейчас, очень простые, так как я не смог найти лучшего, который мог бы дать мне похожий результат. Но, как и ожидалось, эти циклы for требуют столько времени и памяти для запуска. Я попытался найти некоторые подсказки в Интернете, но это не удалось.

Вы можете найти часть моего кода, которая связана с этой проблемой, следующим образом:

I = np.identity(Q_mat.shape[0])
Q_inv_F= np.linalg.pinv(I-Q_mat)
t_count=Q_inv_F.shape[0]*Q_inv_F.shape[1]
Abs_t_F = pd.DataFrame(np.nan, index=range(t_count), columns=['Row','Col','Prob'])
ss=0
for i in range(0, Q_inv_F.shape[0], 1):
for j in range(0, Q_inv_F.shape[1], 1):
    Abs_t_F.Row[ss] = i
    Abs_t_F.Col[ss] =j
    Abs_t_F.Prob[ss] = Q_inv_F[i,j]
    ss+=1
# Function for Returning the Initial States
def find_in_dictT_F(n):
for i in dict_Tstates_F.keys():
    if (dict_Tstates_F[i]== n):
        return i
Abs_t_F['State2Q'] = [find_in_dictT_F(Abs_t_F.Col[i]) for i in range(Abs_t_F.shape[0])]
Abs_t_F['State1Q'] = [find_in_dictT_F(Abs_t_F.Row[i]) for i in range(Abs_t_F.shape[0])]
...