0
我正在嘗試處理wiki-Vote.txt(https://snap.stanford.edu/data/wiki-Vote.html)中給出的圖形。有7115個節點的id範圍從3到8297.我想重新標記節點從0到7114.我檢查了relabel_nodes()中的映射,但仍然無法解決問題。請建議。感謝重新標記網絡x中圖形的節點
我正在嘗試處理wiki-Vote.txt(https://snap.stanford.edu/data/wiki-Vote.html)中給出的圖形。有7115個節點的id範圍從3到8297.我想重新標記節點從0到7114.我檢查了relabel_nodes()中的映射,但仍然無法解決問題。請建議。感謝重新標記網絡x中圖形的節點
給定圖G
一些節點集,最簡單的事情將是
mapping = {old_label:new_label for new_label, old_label in enumerate(G.nodes())}
H = nx.relabel_nodes(G, mapping)
這將創建一個字典mapping
的鍵是舊標籤,值是他們的新標籤(閱讀了關於dictionary comprehensions)。新標籤的排序順序爲G.nodes()
返回值(您無法控制)。新圖H
已更改節點標籤。
如果你想要一個特定的訂單,你需要適當地對G.nodes()進行排序。所以你可以做
nodelist = G.nodes()
nodelist.sort()
mapping = {old_label:new_label for new_label, old_label in enumerate(G.nodes())}
H = nx.relabel_nodes(G, mapping)
這將他們按數字順序排序(或字母順序,如果節點名稱是字符串)。如果你想要一些其他的自定義命令,你必須弄清楚如何對nodelist進行排序。
這是什麼問題?它如何體現? (當你試圖檢查'relabel_nodes()'中的映射時發生了什麼?)你對此做出了什麼嘗試? 如果這是一個家庭/課程練習,如果你指出它會很感激。 – zyndor
映射似乎是明確指定的或爲連續範圍定義的。如何爲我的情況定義映射?它不是功課。謝謝。 –
你有什麼試過的?我不確定你的意思是什麼:「我檢查了relabel_nodes()中的映射,但仍然無法解決問題。」 – Joel