Paquete Big Tree para Python
Implementación de Árbol y Métodos para Python, integrado con listas, diccionarios, pandas y DataFrame de polars.
Es pythonico, lo que facilita su aprendizaje y es extensible a muchos tipos de flujos de trabajo.
----
Enlaces Relacionados:
- Documentación
- GitHub
- Comunidad
- Issues
- Paquete
- PyPI
- Artículos
- Implementación de Árbol en Python con BigTree
- El Algoritmo Reingold Tilford Explicado, con Ejemplo
Componentes
Big Tree consta de 3 segmentos que incluyen la implementación de Árbol, Árbol Binario y Grafo Acíclico Dirigido (DAG).Para la implementación de Árbol, hay 12 componentes principales.
- 🌺 Nodo
- `
BaseNode, clase extensible Node, BaseNode con atributo de nombre de nodo- 🎄 Árbol
Tree, envoltorio alrededor deNode, que proporciona APIs de alto nivel para construir, iterar, consultar y exportar toda la estructura del árbol- ✨ Construcción del Árbol
- Desde Node
, usando constructores de padre e hijos - Desde str, usando visualización de árbol o notación en cadena Newick
- Desde list, usando rutas o tuplas padre-hijo
- Desde diccionario anidado, usando pares clave-valor de atributos de ruta o estructura recursiva
- Desde pandas DataFrame, usando rutas o columnas padre-hijo
- Desde polars DataFrame, usando rutas o columnas padre-hijo
- Desde interfaz de usuario interactiva
- Agregar nodos al árbol existente usando cadena de ruta
- Agregar nodos y atributos al árbol existente usando diccionario, pandas DataFrame o polars DataFrame, usando ruta
- Agregar solo atributos al árbol existente usando diccionario, pandas DataFrame o polars DataFrame, usando nombre del nodo
- ➰ Recorrido del Árbol
- Recorrido Preorden
- Recorrido Postorden
- Recorrido por Niveles
- Recorrido por Grupos de Niveles
- Recorrido ZigZag
- Recorrido por Grupos ZigZag
- 🧩 Análisis del Árbol
- Obtener ancestros comunes entre nodos
- Obtener ruta de un nodo a otro nodo
- 📝 Modificación del Árbol
- Copiar nodos de una ubicación a otra
- Mover nodos de una ubicación a otra
- Mover y reemplazar nodos de una ubicación a otra
- Copiar nodos de un árbol a otro
- Copiar y reemplazar nodos de un árbol a otro
- 📌 Consulta del Árbol
- Filtrar árbol usando Lenguaje de Consulta de Árbol
- 🔍 Búsqueda en el Árbol
- Encontrar múltiples nodos basados en nombre, ruta parcial, ruta relativa, valor de atributo, condición definida por el usuario
- Encontrar un solo nodo basado en nombre, ruta parcial, ruta relativa, ruta completa, valor de atributo, condición definida por el usuario
- Encontrar múltiples nodos hijos basados en condición definida por el usuario
- Encontrar un solo nodo hijo basado en nombre, condición definida por el usuario
- 🔧 Funciones Auxiliares
- Clonar árbol a otro tipo Node
- Obtener subárbol (árbol más pequeño con raíz diferente)
- Podar árbol (árbol más pequeño con misma raíz)
- Obtener diferencias entre dos árboles
- 📊 Graficar Árbol
- Algoritmo Reingold Tilford mejorado para obtener coordenadas (x, y) para una estructura de árbol
- Graficar árbol usando matplotlib (dependencia opcional)
- 🔨 Exportar Árbol
- Imprimir en consola, en orientación vertical u horizontal
- Exportar a notación de cadena Newick, diccionario, diccionario anidado, DataFrame de pandas o DataFrame de polars
- Exportar árbol a dot (puede guardar en archivos .dot, .png, .svg, .jpeg)
- Exportar árbol a Pillow (puede guardar en .png, .jpg)
- Exportar árbol a Mermaid Flowchart (puede mostrarse en .md)
- Exportar árbol a Pyvis Network (puede mostrarse interactivo en .html)
- ✔️ Flujos de trabajo
- ¡Ejemplos de flujos de trabajo para demostración de árboles!
Para la implementación de Árbol Binario, hay 4 componentes principales. El Nodo Binario hereda de Nodo, por lo que los componentes en la implementación de Árbol también están disponibles en Árbol Binario.
- 🌿 Nodo
BinaryNode, Nodo con reglas de árbol binario- 🎄 Árbol Binario
BinaryTree, envoltorio alrededor deBinaryNode, que proporciona APIs de alto nivel para construir, iterar, consultar y exportar toda la estructura del árbol- ✨ Construcción de Árbol Binario
- Desde lista, usando estructura de lista aplanada
- ➰ Recorrido de Árbol Binario
- Recorrido In-Order
Para la implementación de Grafo Acíclico Dirigido (DAG), hay 6 componentes principales.
- 🌼 Nodo
DAGNode, clase extensible para construir Grafos Acíclicos Dirigidos (DAG)- 🎄 DAG
DAG, envoltorio alrededor deDAGNode, que proporciona APIs de alto nivel para construir, exportar e iterar todo el DAG- ✨ Construcción de DAG
- Desde lista, que contiene tuplas padre-hijo
- Desde diccionario anidado
- Desde DataFrame de pandas
- ➰ Recorrido de DAG
- Método genérico de recorrido
- 🧩 Análisis de DAG
- Obtener posibles rutas desde un nodo a otro nodo
- 🔨 Exportación de DAG
- Exportar a lista, diccionario o DataFrame de pandas
- Exportar DAG a dot (puede guardarse en archivos .dot, .png, .svg, .jpeg)
Instalación
bigtree requiere Python 3.10+. Hay dos formas de instalar bigtree, con pip (recomendado) o conda.
a) Instalación con pip
#### Instalación básica
Para instalar bigtree, ejecute la siguiente línea en el símbolo del sistema:
$ pip install bigtree
#### Instalación de dependencias opcionalesbigtree tiene una serie de dependencias opcionales, que se pueden instalar usando la sintaxis de "extras".
$ pip install 'bigtree[extra_1, extra_2]'Ejemplos de paquetes adicionales incluyen:
- all
: incluye todas las dependencias opcionales - image
: para exportar el árbol a imagen - matplotlib
: para graficar árboles - pandas
: para métodos de pandas - polars
: para métodos de polars - query
: para métodos de consulta del árbol - vis
: para visualización con pyvis
, puede que necesite instalar más complementos.$ brew install gprof2dot # for MacOS
$ conda install graphviz # for Windows
b) Instalación con conda
Para instalar
bigtree` con conda, ejecute la siguiente línea en el símbolo del sistema:$ conda install -c conda-forge bigtree-----
Star History
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-16 ---