Проблема с добавлением информации из networkx dict в массив numpy - PullRequest
1 голос
/ 21 июня 2020

Попытка взять строки из моего networkx dict и добавить их в определенное место в массиве:

def sameSports(node1, node2, G):

    A = [G.node[node1]['sport1'], G.node[node1]['sport2'], G.node[node1]['sport3']]
    B = [G.node[node2]['sport1'], G.node[node2]['sport2'], G.node[node2]['sport3']]

    sharedSports = np.intersect1d(A,B)
    sharedSports = np.delete(sharedSports, np.where(sharedSports == 'N/A'))

    return sharedSports

def meetingDay(sharedSports,rightAxis):
    
meetingDays = [[] for i in range (len(sharedSports))]

    columns=['Monday','Tuesday','Wednesday','Thursday','Friday']
    for i in range (0,5):
        for t in sharedSports:
            n=np.where(sharedSports==t)
            meetingDays[n].append(t)
            if t in rightAxis[i]:
                meetingDays[n].append(columns[i])
    return meetingDays

G.node [n] ['sport'] dicts возвращает однобуквенные строки 'A '-'W', а массив rightAxis представляет собой массив из 5 частей, содержащий некоторые из тех же букв. Получение этой ошибки:

Traceback (последний вызов последним): файл ". \ Main.py", строка 18, в a, b = add_sport_to_edges (G, rightAxis) Файл "C: \ Users \ rjtkr \ OneDrive \ Documents \ Work \ Summer 2020 Research \ epidemic \ Athletics Network \ sportsnetwork.py ", строка 99, в файле add_sport_to_edges temp = meetingDay (sharedSports, rightAxis)" C: \ Users \ rjtkr \ OneDrive \ Documents \ Work \ Summer 2020 Research \ epidemic \ Athletics Network \ sportsnetwork.py ", строка 90, в meetingDay meetingDays [n] .append (t) TypeError: индексы списка должны быть целыми числами или фрагментами, а не кортежем

Не уверен, что ему не нравится 'n' или 't', но он уверен, что ни то, ни другое не является кортежем. Надеюсь, я включил весь соответствующий код. Остальные строки, отображаемые в сообщении об ошибке, идут после прикрепленного кода, и ошибка остается неизменной после их удаления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...