Counter:一个简单的进度计数器

一个简单的进度计数器,用于打印 for 循环执行中的迭代次数和耗时。

from mlxtend.utils import Counter

概述

Counter 类实现了一个对象,用于显示 for 循环中的迭代次数和耗时。请注意,实现 Counter 是为了效率;因此,Counter 只提供了非常基本的功能,以避免相对昂贵的评估(例如 if-else 语句)。

参考资料

  • -

示例 1 - 在 for 循环中计数迭代次数

from mlxtend.utils import Counter
import time

cnt = Counter()
for i in range(20):
    # do some computation
    time.sleep(0.1)
    cnt.update()
20 iter | 2 sec

请注意,第一个数字显示当前迭代次数,第二个数字显示初始化 Counter 后经过的时间。

API

Counter(stderr=False, start_newline=True, precision=0, name=None)

用于显示 for 循环迭代器进度的类。

参数

  • stderr : bool (默认值: True)

    如果为 True,则将输出打印到 sys.stderr;否则使用 sys.stdout。

  • start_newline : bool (默认值: True)

    在计数器前添加新行,防止多个计数器连续打印时相互覆盖。 precision: int (默认值: 0) 设置显示经过时间(秒)时的小数位数。

  • name : string (默认值: None)

    在计数器前添加指定的名称,以便区分多个计数器。

属性

  • curr_iter : int

    当前迭代次数。

  • start_time : float

    计数器初始化时的系统时间(秒)。

  • end_time : float

    计数器上次更新时的系统时间(秒)。

示例

>>> cnt = Counter()
>>> for i in range(20):
...     # do some computation
...     time.sleep(0.1)
...     cnt.update()
20 iter | 2 sec
>>> print('The counter was initialized.'
' %d seconds ago.' % (time.time() - cnt.start_time))
The counter was initialized 2 seconds ago
>>> print('The counter was last updated'
' %d seconds ago.' % (time.time() - cnt.end_time))
The counter was last updated 0 seconds ago.

更多使用示例,请参阅 https://mlxtend.cn/mlxtend/user_guide/utils/Counter/

方法


update()

打印当前迭代次数和耗时。