Package Big Tree Python
Implémentation d'arbre et méthodes pour Python, intégrées avec list, dictionnaire, pandas et DataFrame polars.
C'est pythonique, ce qui le rend facile à apprendre et extensible à de nombreux types de flux de travail.
----
Liens associés :
- Documentation
- GitHub
- Communauté
- Problèmes
- Package
- PyPI
- Articles
- Implémentation d'arbre Python avec BigTree
- L'algorithme de Reingold Tilford expliqué, avec démonstration
Composants
Il y a 3 segments dans Big Tree comprenant l'implémentation d'Arbre, d'Arbre Binaire et de Graphe Orienté Aciclique (DAG).Pour l'implémentation d'Arbre, il y a 12 composants principaux.
- 🌺 Nœud
- `
BaseNode, classe extensible Node, BaseNode avec un attribut de nom de nœud- 🎄 Arbre
Tree, enveloppe autour deNode, fournissant des API de haut niveau pour construire, itérer, interroger et exporter la structure entière de l'arbre- ✨ Construction d'Arbre
- À partir de Node
, en utilisant les constructeurs parent et enfants - À partir de str, en utilisant l'affichage d'arbre ou la notation Newick
- À partir de list, en utilisant des chemins ou des tuples parent-enfant
- À partir d’un dictionnaire imbriqué, en utilisant des paires clé-valeur chemin-attribut ou une structure récursive
- À partir d’un DataFrame pandas, en utilisant des chemins ou des colonnes parent-enfant
- À partir d’un DataFrame polars, en utilisant des chemins ou des colonnes parent-enfant
- À partir d’une interface utilisateur interactive
- Ajouter des nœuds à un arbre existant en utilisant une chaîne de chemin
- Ajouter des nœuds et des attributs à un arbre existant en utilisant un dictionnaire, un DataFrame pandas ou un DataFrame polars, en utilisant le chemin
- Ajouter uniquement des attributs à un arbre existant en utilisant un dictionnaire, un DataFrame pandas ou un DataFrame polars, en utilisant le nom du nœud
- ➰ Parcours de l’Arbre
- Parcours en pré-ordre
- Parcours en post-ordre
- Parcours en ordre de niveau
- Parcours en groupe par niveau
- Parcours ZigZag
- Parcours en groupe ZigZag
- 🧩 Analyse de l’Arbre
- Obtenir les ancêtres communs entre des nœuds
- Obtenir le chemin d’un nœud à un autre nœud
- 📝 Modification de l’Arbre
- Copier des nœuds d’un emplacement vers une destination
- Déplacer des nœuds d’un emplacement vers une destination
- Déplacer et remplacer des nœuds d’un emplacement vers une destination
- Copier des nœuds d’un arbre à un autre
- Copier et remplacer des nœuds d’un arbre à un autre
- 📌 Requête sur l’Arbre
- Filtrer l’arbre en utilisant le langage de requête Tree Query Language
- 🔍 Recherche dans l’Arbre
- Trouver plusieurs nœuds selon le nom, chemin partiel, chemin relatif, valeur d’attribut, condition définie par l’utilisateur
- Trouver un seul nœud selon le nom, chemin partiel, chemin relatif, chemin complet, valeur d’attribut, condition définie par l’utilisateur
- Trouver plusieurs nœuds enfants selon une condition définie par l’utilisateur
- Trouver un seul nœud enfant selon le nom, condition définie par l’utilisateur
- 🔧 Fonction d’Aide
- Cloner un arbre vers un autre type de Node
- Obtenir un sous-arbre (arbre plus petit avec une racine différente)
- Élaguer l’arbre (arbre plus petit avec la même racine)
- Obtenir la différence entre deux arbres
- 📊 Visualisation de l’Arbre
- Algorithme Reingold-Tilford amélioré pour récupérer les coordonnées (x, y) d’une structure arborescente
- Tracer l’arbre en utilisant matplotlib (dépendance optionnelle)
- 🔨 Exportation de l’Arbre
- Afficher dans la console, en orientation verticale ou horizontale
- Exporter en notation chaîne Newick, dictionnaire, dictionnaire imbriqué, DataFrame pandas ou DataFrame polars
- Exporter l’arbre en dot (peut être sauvegardé en fichiers .dot, .png, .svg, .jpeg)
- Exporter l’arbre en Pillow (peut être sauvegardé en .png, .jpg)
- Exporter l’arbre en Mermaid Flowchart (peut s’afficher dans .md)
- Exporter l’arbre en Pyvis Network (peut s’afficher en .html interactif)
- ✔️ Workflows
- Exemples de workflows pour démonstration d’arbre !
Pour l’implémentation de l’Arbre Binaire, il y a 4 composants principaux. Le nœud binaire hérite du nœud, donc les composants dans l’implémentation de l’arbre sont aussi disponibles dans l’arbre binaire.
- 🌿 Nœud
BinaryNode, nœud avec règles d’arbre binaire- 🎄 Arbre Binaire
BinaryTree, wrapper autour deBinaryNode, fournissant des API de haut niveau pour construire, itérer, interroger et exporter toute la structure d’arbre- ✨ Construction de l’Arbre Binaire
- Depuis une liste, utilisant une structure de liste aplatie
- ➰ Parcours de l’Arbre Binaire
- Parcours en ordre
Pour l’implémentation du Graphe Orienté Acyclique (DAG), il y a 6 composants principaux.
- 🌼 Nœud
DAGNode, classe extensible pour construire un Graphe Orienté Acyclique (DAG)- 🎄 DAG
DAG, wrapper autour deDAGNode, fournissant des API de haut niveau pour construire, exporter et itérer sur tout le DAG- ✨ Construction du DAG
- Depuis une liste, contenant des tuples parent-enfant
- Depuis un dictionnaire imbriqué
- Depuis un DataFrame pandas
- ➰ Parcours du DAG
- Méthode de parcours générique
- 🧩 Analyse du DAG
- Obtenir les chemins possibles d’un nœud à un autre
- 🔨 Exportation du DAG
- Exporter en liste, dictionnaire ou DataFrame pandas
- Exporter le DAG au format dot (peut être enregistré en fichiers .dot, .png, .svg, .jpeg)
Installation
bigtree nécessite Python 3.10+. Il existe deux façons d’installer bigtree, avec pip (recommandé) ou conda.
a) Installation avec pip
#### Installation de base
Pour installer bigtree, exécutez la ligne suivante dans l’invite de commande :
$ pip install bigtree#### Installation des dépendances optionnelles
bigtree dispose d'un certain nombre de dépendances optionnelles, qui peuvent être installées en utilisant la syntaxe "extras".
$ pip install 'bigtree[extra_1, extra_2]'
Exemples de paquets supplémentaires incluent :- all
: inclure toutes les dépendances optionnelles - image
: pour exporter l'arbre en image - matplotlib
: pour tracer les arbres - pandas
: pour les méthodes pandas - polars
: pour les méthodes polars - query
: pour les méthodes de requête d'arbre - vis
: pour la visualisation pyvis
, vous devrez peut-être installer plus de plugins.$ brew install gprof2dot # for MacOS
$ conda install graphviz # for Windows
b) Installation avec conda
Pour installer
bigtree` avec conda, exécutez la ligne suivante dans l'invite de commande :$ conda install -c conda-forge bigtree-----
Star History
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-16 ---