tqdm 是 Python 中一个非常流行的进度条工具,常用于长时间运行的任务,如数据处理、训练机器学习模型等。tqdm 的主要优点是易用性和功能丰富,可以在多种场景下使用。下面是 tqdm 的详细介绍及一些常见用法示例:
安装
首先,确保安装了 tqdm,可以使用 pip 进行安装:
pip install tqdm
基本用法
tqdm 最常见的用法是在循环中显示进度条:
from tqdm import tqdm
import timefor i in tqdm(range(100)):time.sleep(0.1) # 模拟耗时操作
在函数中使用
可以将 tqdm 与函数结合使用:
from tqdm import tqdm
import timedef process_data(item):time.sleep(0.1) # 模拟数据处理data = range(100)
for item in tqdm(data):process_data(item)
进度条描述
可以使用 desc 参数为进度条添加描述:
for item in tqdm(data, desc="Processing"):process_data(item)
进度条格式化
tqdm 提供了多种参数来控制进度条的显示样式:
total: 总迭代次数。leave: 是否在迭代结束后保留进度条(默认为 True)。ncols: 进度条的宽度。mininterval: 最小更新时间间隔(秒)。maxinterval: 最大更新时间间隔(秒)。ascii: 使用 ASCII 字符而不是 Unicode 字符显示进度条。
for item in tqdm(data, desc="Processing", total=100, leave=True, ncols=100, ascii=True):process_data(item)
与 pandas 一起使用
tqdm 可以很方便地与 pandas 一起使用,特别是在处理 DataFrame 时:
import pandas as pd
from tqdm import tqdm# 为 pandas 应用 tqdm
tqdm.pandas()# 示例 DataFrame
df = pd.DataFrame({'a': range(1000)})# 使用 progress_apply 显示进度条
df['a'].progress_apply(lambda x: x ** 2)
嵌套进度条
tqdm 支持嵌套进度条,适用于多层循环:
from tqdm import tqdm
import timefor i in tqdm(range(5), desc="Outer loop"):for j in tqdm(range(100), desc="Inner loop", leave=False):time.sleep(0.01)
进度条更新
有时候需要手动更新进度条,这可以使用 tqdm 的更新方法:
from tqdm import tqdm
import timepbar = tqdm(total=100)
for i in range(10):time.sleep(0.1)pbar.update(10)
pbar.close()