大树 Python 包
Python 的树结构实现及方法,集成了列表、字典、pandas 和 polars DataFrame。
它具有 Python 风格,易于学习并可扩展到多种工作流。
----
相关链接:
/ 讨论 / 更新日志 / 贡献- 包
- PyPI
组件
Big Tree 由三部分组成:树(Tree)、二叉树(Binary Tree)和有向无环图(DAG)实现。对于树的实现,有12个主要组件。
- 🌺 节点
- `
BaseNode,可扩展类 Node,带节点名称属性的 BaseNode- 🎄 树
Tree,Node 的包装器,提供构建、迭代、查询及导出整个树结构的高级 API- ✨ 构建树
- 从 Node
,使用父节点和子节点构造器 - 从 str,使用树形展示或 Newick 字符串表示法
- 从 list,使用路径或父子元组
- 从嵌套字典,使用路径-属性键值对或递归结构
- 从pandas DataFrame,使用路径或父子列
- 从polars DataFrame,使用路径或父子列
- 从交互式UI
- 使用路径字符串向现有树添加节点
- 使用字典、pandas DataFrame或polars DataFrame,通过路径向现有树添加节点和属性
- 使用字典、pandas DataFrame或polars DataFrame,通过节点名仅向现有树添加属性
- ➰ 遍历树
- 先序遍历
- 后序遍历
- 层序遍历
- 层序分组遍历
- 之字形遍历
- 之字形分组遍历
- 🧩 解析树
- 获取节点间的共同祖先
- 获取从一个节点到另一个节点的路径
- 📝 修改树
- 复制节点从某位置到目标位置
- 移动节点从某位置到目标位置
- 移动并替换节点从某位置到目标位置
- 从一棵树复制节点到另一棵树
- 复制并替换节点从一棵树到另一棵树
- 📌 查询树
- 使用树查询语言过滤树
- 🔍 树搜索
- 根据名称、部分路径、相对路径、属性值、用户定义条件查找多个节点
- 根据名称、部分路径、相对路径、完整路径、属性值、用户定义条件查找单个节点
- 根据用户定义条件查找多个子节点
- 根据名称、用户定义条件查找单个子节点
- 🔧 辅助函数
- 克隆树为另一种Node
类型 - 获取子树(不同根的小树)
- 修剪树(相同根的小树)
- 获取两棵树之间的差异
- 📊 绘制树
- 增强Reingold-Tilford算法以获取树结构的(x, y)坐标
- 使用matplotlib绘制树(可选依赖)
- 🔨 导出树
- 以垂直或水平方向打印到控制台
- 导出为 Newick 字符串表示法、字典、嵌套字典、pandas DataFrame 或 polars DataFrame
- 导出树为 dot 格式(可保存为 .dot、.png、.svg、.jpeg 文件)
- 导出树为 Pillow(可保存为 .png、.jpg)
- 导出树为 Mermaid 流程图(可在 .md 文件中显示)
- 导出树为 Pyvis 网络(可显示交互式 .html)
- ✔️ 工作流程
- 树演示的示例工作流程!
对于 二叉树 实现,有 4 个主要组件。 二叉节点继承自节点,因此树实现中的组件在二叉树中也可用。
- 🌿 节点
BinaryNode,符合二叉树规则的节点- 🎄 二叉树
BinaryTree,围绕BinaryNode的封装,提供构建、遍历、查询和导出整棵树的高级 API- ✨ 构建二叉树
- 从 列表 构建,使用扁平化列表结构
- ➰ 遍历二叉树
- 中序遍历
对于 有向无环图(DAG) 实现,有 6 个主要组件。
- 🌼 节点
DAGNode,用于构建有向无环图(DAG)的可扩展类- 🎄 有向无环图
DAG,围绕DAGNode的封装,提供构建、导出和遍历整个 DAG 的高级 API- ✨ 构建 DAG
- 从 列表 构建,包含父子元组
- 从 嵌套字典 构建
- 从 pandas DataFrame 构建
- ➰ 遍历 DAG
- 通用遍历方法
- 🧩 解析 DAG
- 获取从一个节点到另一个节点的可能路径
- 🔨 导出 DAG
- 导出为 列表、字典 或 pandas DataFrame
- 将 DAG 导出为 dot(可以保存为 .dot、.png、.svg、.jpeg 文件)
安装
bigtree 需要 Python 3.10 及以上版本。安装 bigtree 有两种方式,使用 pip(推荐)或 conda。
a) 使用 pip 安装
#### 基本安装
要安装 bigtree,在命令提示符中运行以下命令:
$ pip install bigtree#### 安装可选依赖项
bigtree 有许多可选依赖项,可以使用 “extras” 语法安装。
$ pip install 'bigtree[extra_1, extra_2]'
额外包的示例包括:- all
:包含所有可选依赖 - image
:用于导出树为图片 - matplotlib
:用于绘制树 - pandas
:用于 pandas 方法 - polars
:用于 polars 方法 - query
:用于树查询方法 - vis
:用于 pyvis 可视化
额外依赖,您可能需要安装更多插件。$ brew install gprof2dot # for MacOS
$ conda install graphviz # for Windows
b) 使用 conda 安装
要使用 conda 安装
bigtree`,请在命令提示符中运行以下命令:$ conda install -c conda-forge bigtree-----
Star History
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-16 ---