DIYer22/boxx
DIYer22/boxx has 516 GitHub stars and 39 forks. Star changes are not measured yet. Last checked 2026-11-11 01:14 UTC. Last push 2025-05-09.
Tool-box for efficient build and debug in Python. Especially for Scientific Computing and Computer Vision.
实测星标增长
- 24小时
- 更新延迟
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_zh_cn.md
原文Box-X
Box-X 是一个旨在提高 Python 代码开发和调试效率的工具库,尤其是在 科学计算 和 计算机视觉 领域.
一. 简介
Box-X 的目标是提高 Python 代码的开发和调试效率.
特别是在 科学计算 和 计算机视觉 领域有着良好的支持.
因此,工具库的所有功能 会根据该功能是否通用 而被分为了两个部分:
通用功能: 这些功能(工具)可以在任何 Python 开发中发挥作用
科学计算和计算机视觉功能: 这些功能(工具)主要用于科学计算和计算机视觉领域
boxx 兼容 Python 2/3 及 Linux | macOS | Windows 操作系统, 支持 纯 Python、IPython、Spyder、Jupyer Notebook 等 Python 运行环境
P.S. 如果对计算机视觉感兴趣,这里有一个详尽的关于 boxx 的介绍:
二. 安装
pip install boxx
三. 示例
示例也被分为了两个部分
左侧为 通用功能,右侧为 科学计算和计算机视觉功能。
💡 Note:
- 点击图片可以查看大图,如果是 GIF,GIF还会从头开始播放
- 下面的内容是为桌面浏览器排版的内容,如通过手机浏览器查看,推荐访问=> 静态的 Tutorial
▶
|
| 变量个数 \ 操作 | transport | print & transport | |
|---|---|---|---|
| 单变量 | p/x |
g.name/x |
gg.name/x |
| 多变量 | with p: |
with g: |
with gg: |
locals() |
p() |
g() |
gg() |
locals()_2 |
import boxx.p |
import boxx.g |
import boxx.gg |
💡 Note:
- transport 操作是指 把函数内的变量传送到 Python interactive console 中
locals()指作 用于函数或 module 内的所有变量locals()_2: 当boxx未导入时,import boxx.{操作}能等价于from boxx import {操作};{操作}()
▶ 使用 what 来了解任何对象
💡 Note: what(x) 通过打印 x 自己及x 的 文档, 父类继承关系, 内部结构 及 所有属性 来全面了解 x. 是 help(x) 的补充.
▶ timeit 是一个方便的计时工具
💡 Note: timeit 会对在 with 结构下的代码块进行计时,并用蓝色来打印出运行的时间.
▶ mapmp 是多进程版本的 map
mapmp 是 "MAP for Multi Process"的缩写, 和 map 有着一样的用法,但会用多进程加速.
💡 Note:
mapmp的 pool 参数来控制进程数目,默认为 CPU 线程数目.- 在多进程程序中, 打印进度往往非常麻烦.
mapmp的 printfreq 参数能解决这个问题. - 如同
map一样,mapmp支持将多个参数输入函数,如mapmp(add, list_1, list_2) - 在 Python 中,多进程代码最好在
__name__ == '__main__'环境中运行. - 如果加速
numpy程序,请注意 在 MKL 版本的numpy中,多进程会更慢, 可以运行boxx.testNumpyMultiprocessing()来测试当前环境对多进程numpy的友好程度
▶ 用 heatmap 来展示代码的运行时间热力图
💡 Note: heatmap 也支持字符串形式的 Python 代码.
▶ performance 可以统计函数调用并通过火焰图可视化代码性能
四. 教程
boxx 的教程是一个 Jupyter Notebook 文件,可以边看边运行.
有三种方式来查看/运行此教程
方式一:可执行的在线 Notebook:
Notebook 文件被运行在 Binder 上。Binder 提供了可执行、可交互的在线 Notebook 环境.
也就是说,无需下载和运行任何代码,只需浏览器打开链接,就可以在线执行 Notebook 教程中的代码块。
方式二:下载并在本地打开教程:
git clone https://github.com/DIYer22/boxx
cd boxx/
python setup.py install
jupyter notebook
在 Jupyter Notebook 中打开 ./tutorial_for_boxx.ipynb 即可.
方式三:静态的 Notebook:
只能看 不能交互的 Notebook.
五. 致谢
- 特别感谢徐晓栋、吴国栋、范浩强和熊鹏飞对
boxx提出的建议 - I develop
boxxin Spyder IDE, Spyder is a awesome Scientific Python Development Environment with Powerful Qt-IPython performanceis supported by SnakeVizheatmapis supported by csurfer/pyheat



