[PYTHON] [NetworkX] Ich möchte nach Knoten mit bestimmten Attributen suchen

Überblick

Ich verwende NetworkX in meiner Forschung, wollte aber nach einem Knoten mit einem bestimmten Attribut suchen, und als Ergebnis der Suche nach einer solchen Methode habe ich es geschafft.

Code

find_specific_attribute_node.py


import networkx as nx

def find_specific_attribute_node(G, attr, value):

    result = []

    d = nx.get_node_attributes(G, attr)

    for key, v in d.items():
        if(v == value):
            result.append(key)

    return result

Betriebsbeispiel

Lassen Sie uns das folgende Testprogramm ausführen.

find_node_test_for_qiita.py


import networkx as nx
from find_specific_attribute_node import find_specific_attribute_node as find_nodes
if __name__ == '__main__':

    Graph = nx.DiGraph()

    Graph.add_node('a', color = 'blue')
    Graph.add_node('b', color = 'red')
    Graph.add_node('c', color = 'blue')
    Graph.add_node('d', color = 'red')
    Graph.add_node('e', color = 'blue')
    Graph.add_node('f', color = 'red')

    print(find_nodes(Graph, 'color', 'blue'))

Unten ist das Ausführungsergebnis.

Ausführungsergebnis


['a', 'e', 'c']

Sie können sehen, dass eine Liste mit Knotennamen mit "blau" im Attribut "Farbe" erstellt wurde.

Erläuterung

Es ist sehr gut geeignet, daher hat es die folgenden drei Argumente.

--G: Zu durchsuchender Graph --attr: Attributname, nach dem Sie suchen möchten --value: Der Wert des Attr, den Sie suchen möchten

Der Rückgabewert ist eine Liste der gefundenen Knotennamen.

abschließend

Es scheint sehr anspruchsvoll zu sein, daher kann es in der Realität eine Methode mit einer ähnlichen Funktion wie NetworkX geben. Lass es mich wissen, bitte.

Außerdem habe ich die Namensregeln wie Methoden nicht richtig studiert, daher würde ich mich freuen, wenn Sie mir sagen könnten, ob es so etwas wie "Ich sollte ihm einen solchen Namen geben" gibt ...

Recommended Posts

[NetworkX] Ich möchte nach Knoten mit bestimmten Attributen suchen
Ich möchte ○○ mit Pandas machen
Ich möchte mit Python debuggen
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Ich möchte Objekte mit OpenCV erkennen
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte MATLAB feval mit Python verwenden
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte ein Spiel mit Python machen
Ich möchte OREMO mit setParam sein!
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
Ich möchte -inf nicht mit np.log verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte ip vrf mit SONiC verwenden
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte mit Djangos Migrate von vorne beginnen
Ich möchte mit Python in eine Datei schreiben
Ich möchte ein Bild mit Lollipop in WebP konvertieren
Ich möchte die Optimierung mit Python und CPlex behandeln
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte manuell eine Legende mit matplotlib erstellen
[TensorFlow] Ich möchte Fenster mit Ragged Tensor verarbeiten
Für diejenigen, die Python mit vim schreiben möchten
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte eine lokale Variable mit Lambda binden
[Python] Ich möchte nur den Index verwenden, wenn ich eine Liste mit einer for-Anweisung schleife
[Linux] Wenn Sie aus mehreren Dateien nach einer bestimmten Zeichenfolge suchen möchten
[TensorFlow] Ich möchte die Indizierung für Ragged Tensor beherrschen
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte Pythons ungelöste Importwarnung mit vsCode entfernen
Ich möchte R-Funktionen einfach mit ipython notebook verwenden
Ich möchte eine andere Version von Python mit pyvenv angeben
Ich möchte Geschenke auch für mich selbst austauschen! [Weihnachten Hackason]
Ich möchte vorerst Selen bewegen [für Mac]
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Ich möchte mit Numpy die japanische Flagge in die Palau-Flagge ändern
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte SUDOKU lösen
Für diejenigen, die mit TensorFlow2 maschinelles Lernen beginnen möchten
Ich möchte mit GAN Schwarzweißfotos von Erinnerungen ausmalen
Ich möchte Daten mit Python analysieren können (Teil 2)
Ich möchte automatisch an Online-Kursen mit Python + Selen teilnehmen!
Ich möchte ein Klickmakro mit pyautogui (Outlook) erstellen.
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte das Paket aus den Anforderungen.txt mit Poesie installieren
Ich kann nicht mit # google-map suchen. ..