python tqdm库的使用


Posted in Python onNovember 30, 2020

Tqdm库比较常用,用于显示进度条。

简单用法:

from tqdm import tqdm

 for i in tqdm(range(2)): 
 pass

100%|???????????????????| 2/2 [00:00<00:00, 1998.72it/s]

  从上面可以看到生成一个长度为2的列表传入tqdm中,在for中迭代,此时输出了进度条,这里tqdm全部使用了默认参数,默认进度条样式就是如上所示;通常默认进度条所输出的信息并不满足我们的需求,tqdm还可以定制进度条样式;
  tdqm数据参数支持的数据类型是可迭代的对象iterable,在Python中默认的可迭代对象有:list、str、tuple、dict、file、xrange等,当然还有自定义可迭代对象;

tqdm参数

desc=None,     str类型,作为进度条说明
total=None,     预期的迭代次数   
file=None,     输出方式,默认为sys.stderr
ncols=None,    进度条长度
mininterval=0.1,   进度条最小的更新间隔,单位秒,默认:0.1
maxinterval=10.0,  进度条最大更新间隔,单位秒,默认:10
unit='it',      单位,默认it每秒迭代数
bar_format=None,  进度条格式
postfix       字典形式信息,例如:速度=5

  这些参数为相对比较常用的参数,并且全部都是可选参数;在自定义进度条当中比较重要的的一个参数为:bar_format,用于定义进度条的具体格式,所包含的具体数据信息;
  下面主要介绍这个参数的具体用法;

Specify a custom bar string formatting. May impact performance.
  [default: '{l_bar}{bar}{r_bar}'], where
  l_bar='{desc}: {percentage:3.0f}%|' and
  r_bar='| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, '
   '{rate_fmt}{postfix}]'
  Possible vars: l_bar, bar, r_bar, n, n_fmt, total, total_fmt,
   percentage, elapsed, elapsed_s, ncols, nrows, desc, unit,
   rate, rate_fmt, rate_noinv, rate_noinv_fmt,
   rate_inv, rate_inv_fmt, postfix, unit_divisor,
   remaining, remaining_s.
  Note that a trailing ": " is automatically removed after {desc}
  if the latter is empty.

上面为tqdm对bar_format的参数描述;从中可看出:
进度条默认格式为: {l_bar}{bar}{r_bar}
进度条分为三部分: 中间的图形(bar),图形左边(l_bar)、图形右边(r_bar)

  • l_bar: {desc}: {percentage:3.0f}%|
  • bar: 进度条
  • r_bar: |{n_fmt}/{total_fmt}[{elapsed}<{remaining},{rate_fmt}{postfix}]

100%|?????????????????| 3/3 [00:03<00:00, 1.00s/it]

percentage:百分比
n_fmt:当前数
total_fmt:总数
elapsed:消耗的时间
remaining:剩余时间
rate_fmt:速率
postifx:后缀字典描述
desc、postfix默认为空;

自定义进度条:

1、bar_format=
'进度:{percentage:3.0f}%|{bar}|{n}/{total}[{elapsed}<{remaining},{rate_fmt}{postfix}]'
进度:100%|????????????????????|3/3[00:03<00:00, 1.00s/it]

2、bar_format='进度:{percentage:3.0f}%|{bar}|{n}/{total}[{rate_fmt}{postfix}]'
进度:100%|????????????????????|3/3[ 1.00s/it]

批量数据进度条

import numpy as np
from torch.utils.data import DataLoader
import time
from tqdm import tqdm, tqdm_notebook
from random import random

data =np.array([1,2,3,4])
data_loader = DataLoader(data, batch_size=2, num_workers=0, shuffle=False)

iterator = tqdm(data_loader,maxinterval=10,
        mininterval=2, ncols=80,
        bar_format='{l_bar}|{bar}| {n_fmt}/{total_fmt} [{rate_fmt}{postfix}|{elapsed}<{remaining}]',
        nrows=10,smoothing=0.1)
epoch =0
for d in iterator:
  time.sleep(2)
  epoch +=1
  print(d)
  iterator.set_description('epoch %d' %epoch)
  iterator.set_postfix_str('loss={:^7.3f}'.format(random()))

python tqdm库的使用

以上就是python tqdm库的使用的详细内容,更多关于python tqdm库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
从零学python系列之数据处理编程实例(二)
May 22 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
pandas修改DataFrame列名的方法
Apr 08 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
Python3中的bytes和str类型详解
May 02 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
Python object类中的特殊方法代码讲解
Mar 06 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 #Python
Python logging自定义字段输出及打印颜色
Nov 30 #Python
详解Python中string模块除去Str还剩下什么
Nov 30 #Python
使用django自带的user做外键的方法
Nov 30 #Python
python 实现简易的记事本
Nov 30 #Python
详解pycharm自动import所需的库的操作方法
Nov 30 #Python
Django REST Framework 分页(Pagination)详解
Nov 30 #Python
You might like
PHP SPL使用方法和他的威力
2013/11/12 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
超级退弹代码
2008/07/07 Javascript
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
python处理cookie详解
2014/02/07 Python
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python实现Kmeans聚类算法
2020/06/10 Python
Python函数返回不定数量的值方法
2019/01/22 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
体育教育专业毕业生自荐信
2013/11/15 职场文书
职业女性的职业规划
2014/03/04 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
求职简历自我评价范文
2015/03/10 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
检讨书格式范文
2015/05/07 职场文书
我的收音机情缘
2022/04/05 无线电