Я прошел курс 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.
Не размещайте текст как изображения. См. meta.stackoverflow.com/questions/285551/…. Вы можете скопировать и вставить сюда текст.
@JonClements Я добавил трассировку. Я действительно не знаю, как это делается в дикой природе. На данный момент я пробовал 2 разных варианта, и ни в одном из случаев не сработало. Не могли бы вы попробовать файл на своем компьютере? Или может с файлом что то не так?
@ Nic3500 Я редактировал Q





Я также столкнулся с той же проблемой загрузки файла .p, который использовался в курсе datacamp в моей локальной системе.
$pip freeze | grep networkx
Используя указанную выше команду в сценарии практики datacamp, я заметил, что версия сетей, которые они используют в курсе, - networkx == 1.1. Возврат к этой версии помог мне решить следующую ошибку, которую вы получаете.
AttributeError: 'DiGraph' object has no attribute '_node'.
Надеюсь это поможет. Спасибо
Выдает ли
nx.read_gpickle(the_filename)график, если вы запускаете его в интерпретаторе ... Или ... вы спрашиваете, например, как установить jupyter notebook?