Counter: A simple progress counter
A simple progress counter to print the number of iterations and time elapsed in a for-loop execution.
from mlxtend.utils import Counter
Overview
The Counter
class implements an object for displaying the number of iterations and time elapsed in a for-loop. Please note that the Counter
was implemented for efficiency; thus, the Counter
offers only very basic functionality in order to avoid relatively expensive evaluations (of if-else statements).
References
- -
Example 1 - Counting the iterations in a for-loop
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
Note that the first number displays the current iteration, and the second number shows the time elapsed after initializing the Counter
.
API
Counter(stderr=False, start_newline=True, precision=0, name=None)
Class to display the progress of for-loop iterators.
Parameters
-
stderr
: bool (default: True)Prints output to sys.stderr if True; uses sys.stdout otherwise.
-
start_newline
: bool (default: True)Prepends a new line to the counter, which prevents overwriting counters if multiple counters are printed in succession. precision: int (default: 0) Sets the number of decimal places when displaying the time elapsed in seconds.
-
name
: string (default: None)Prepends the specified name before the counter to allow distinguishing between multiple counters.
Attributes
-
curr_iter
: intThe current iteration.
-
start_time
: floatThe system's time in seconds when the Counter was initialized.
-
end_time
: floatThe system's time in seconds when the Counter was last updated.
Examples
>>> 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.
For more usage examples, please see https://rasbt.github.io/mlxtend/user_guide/utils/Counter/
Methods
update()
Print current iteration and time elapsed.