Построить график networkx из .p (выбранного) файла

Я прошел курс Datacamp под названием Введение в сетевой анализ (Pt1), и есть тестовая сеть в виде Graph / DiGraph.

В интерактивном python shell на их веб-сайте я могу ввести T.edges(), T.nodes() и т. д. Но я понятия не имею, как загрузить ту же сеть на мою локальную машину.

Данные предоставляются с расширением .p. Щелкните https://mega.nz/#!hs4RhbjC!ukDcb6pDiJSEoAGy-WiosfcMgP62qiQgAAAAAAAAAAA), чтобы получить доступ к файлу.

 import networkx as nx
 dg = pickle.load(open('../data/tw.p'))
 print (dg.edges())

Читает ошибку

 Traceback (most recent call last):
  File "C:\Code\DataCamp-master\21-network-analysis-in-python-(part-1)\01-introduction-to-networks\02-queries-on-a-graph.py", line 22, in <module>
    dg = pickle.load(open('../data/tw.p'))
  File "C:\ProgramData\Anaconda3\lib\encodings\cp1251.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 4933: character maps to <undefined>

@

   T = nx.read_gpickle('../folder/tw.p')

Когда я пытаюсь использовать nx.read_gpickle, я получаю следующее:

   Traceback (most recent call last):
  File "C:\Code\DataCamp-master\21-network-analysis-in-python-(part-1)\01-introduction-to-networks\02-queries-on-a-graph.py", line 21, in <module>
    print (T.nodes())
  File "C:\ProgramData\Anaconda3\lib\site-packages\networkx\classes\graph.py", line 719, in nodes
    nodes = NodeView(self)
  File "C:\ProgramData\Anaconda3\lib\site-packages\networkx\classes\reportviews.py", line 168, in __init__
    self._nodes = graph._node
AttributeError: 'DiGraph' object has no attribute '_node'

Ниже показано, как это должно выглядеть, и я не знаю, как это сделать так:

Directed Graph from the provided file.

The Twitter network has been loaded as `T`.

В [1] type(T)

networkx.classes.digraph.DiGraph

T.nodes(data=True)[:10]
[(1, {'category': 'I', 'occupation': 'scientist'}),
 (3, {'category': 'P', 'occupation': 'politician'}),
 (4, {'category': 'D', 'occupation': 'celebrity'}),
 (5, {'category': 'I', 'occupation': 'politician'}),
 (6, {'category': 'D', 'occupation': 'politician'}),
 (7, {'category': 'D', 'occupation': 'scientist'}),
 (8, {'category': 'I', 'occupation': 'celebrity'}),
 (9, {'category': 'D', 'occupation': 'celebrity'}),
 (10, {'category': 'I', 'occupation': 'celebrity'}),
 (11, {'category': 'I', 'occupation': 'celebrity'})]

Кажется, я не понимаю основной идеи, как реализовать преобразование файла .p в Graph.

Выдает ли nx.read_gpickle(the_filename) график, если вы запускаете его в интерпретаторе ... Или ... вы спрашиваете, например, как установить jupyter notebook?

Jon Clements 26.08.2018 16:48

Не размещайте текст как изображения. См. meta.stackoverflow.com/questions/285551/…. Вы можете скопировать и вставить сюда текст.

Nic3500 26.08.2018 18:45

@JonClements Я добавил трассировку. Я действительно не знаю, как это делается в дикой природе. На данный момент я пробовал 2 разных варианта, и ни в одном из случаев не сработало. Не могли бы вы попробовать файл на своем компьютере? Или может с файлом что то не так?

sharkzeeh 26.08.2018 20:00

@ Nic3500 Я редактировал Q

sharkzeeh 26.08.2018 20:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
4
596
1

Ответы 1

Я также столкнулся с той же проблемой загрузки файла .p, который использовался в курсе datacamp в моей локальной системе.

$pip freeze | grep networkx

Используя указанную выше команду в сценарии практики datacamp, я заметил, что версия сетей, которые они используют в курсе, - networkx == 1.1. Возврат к этой версии помог мне решить следующую ошибку, которую вы получаете.

AttributeError: 'DiGraph' object has no attribute '_node'.

Надеюсь это поможет. Спасибо

Другие вопросы по теме