[PYTHON] [NetworkX] Je souhaite rechercher des nœuds avec des attributs spécifiques

Aperçu

J'utilise NetworkX dans mes recherches, mais je voulais rechercher un nœud avec un attribut spécifique, et à la suite de la recherche d'une telle méthode, je l'ai fait.

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

Exemple d'opération

Lançons le programme de test suivant.

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'))

Voici le résultat de l'exécution.

Résultat d'exécution


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

Vous pouvez voir qu'une liste composée de noms de nœuds avec «bleu» défini dans l'attribut «couleur» a été acquise.

La description

C'est une solution très appropriée, donc elle a les trois arguments suivants.

--G: graphique à rechercher --attr: nom de l'attribut que vous souhaitez rechercher --value: la valeur de l'attr que vous voulez trouver

La valeur de retour est une liste de noms de nœuds trouvés.

en conclusion

Comme cela semble être très nécessaire, il peut en fait y avoir une méthode avec une fonction similaire à NetworkX. S'il vous plaît, faites-moi savoir.

De plus, je n'ai pas étudié correctement les règles de dénomination telles que les méthodes, donc je serais heureux si vous pouviez me dire s'il y a quelque chose comme "Je devrais lui donner un tel nom" ...

Recommended Posts

[NetworkX] Je souhaite rechercher des nœuds avec des attributs spécifiques
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python
Je souhaite rechercher le texte intégral avec elasticsearch + python
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
Je veux détecter des objets avec OpenCV
Je veux écrire un blog avec Jupyter Notebook
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je veux utiliser MATLAB feval avec python
Je souhaite afficher plusieurs images avec matplotlib.
Je veux faire un jeu avec Python
Je veux être OREMO avec setParam!
Je souhaite utiliser le répertoire temporaire avec Python2
Je ne veux pas utiliser -inf avec np.log
#Unresolved Je veux compiler gobject-introspection avec Python3
Je souhaite utiliser ip vrf avec SONiC
Je veux résoudre APG4b avec Python (chapitre 2)
Je veux recommencer avec Migrate de Django
Je veux écrire dans un fichier avec Python
Je veux convertir une image en WebP avec sucette
Je veux gérer l'optimisation avec python et cplex
Je veux escalader une montagne avec l'apprentissage par renforcement
Je veux hériter de l'arrière avec la classe de données python
Je veux travailler avec un robot en python.
Je veux diviser une chaîne de caractères avec hiragana
Je veux AWS Lambda avec Python sur Mac!
Je souhaite créer manuellement une légende avec matplotlib
[TensorFlow] Je souhaite traiter des fenêtres avec Ragged Tensor
Pour ceux qui veulent écrire Python avec vim
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux lier une variable locale avec lambda
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
[Linux] Lorsque vous souhaitez rechercher une chaîne de caractères spécifique dans plusieurs fichiers
[TensorFlow] Je souhaite maîtriser l'indexation pour Ragged Tensor
Je veux pouvoir analyser des données avec Python (partie 3)
Je souhaite supprimer l'avertissement d'importation non résolue de Python avec vsCode
Je souhaite utiliser facilement les fonctions R avec le notebook ipython
Je souhaite spécifier une autre version de Python avec pyvenv
Je veux échanger des cadeaux même pour moi! [Christmas Hackason]
Je veux déplacer le sélénium pour le moment [pour mac]
Je veux pouvoir analyser des données avec Python (partie 1)
Je veux créer un éditeur de blog avec l'administrateur de django
Je veux démarrer un environnement Jupyter avec une seule commande
Je veux faire une macro de clic avec pyautogui (désir)
Je veux changer le drapeau japonais en drapeau des Palaos avec Numpy
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux résoudre SUDOKU
Pour ceux qui souhaitent démarrer l'apprentissage automatique avec TensorFlow2
Je veux colorier des photos en noir et blanc de souvenirs avec GAN
Je veux pouvoir analyser des données avec Python (partie 2)
Je veux assister automatiquement à des cours en ligne avec Python + Selenium!
Je veux faire une macro de clic avec pyautogui (Outlook)
[Python] Je souhaite utiliser l'option -h avec argparse
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Je veux installer le package de requirements.txt avec poésie
Je ne peux pas effectuer de recherche avec # google-map. ..