Cool Python Libraries: TQDM and Resampy
In my recent post about appreciation for open source software, I mentioned that we should praise our open source heros more often. So here are two lesser-known libraries that I use daily, and which are unabashedly awesome:
TQDM
TQDM draws text progress bars for long-running processes, simply by wrapping your iterator in tqdm(iterator)
. And this, alone, would be awesome. But, TQDM is one of those libraries that aren't just a good idea, but then go the extra mile, and add fantastic documentation, contingencies for all kinds of weird use cases, and integration with notebooks and GUIs.
I use TQDM all the time, for running my scientific experiments and data analysis, and it just works. For long-running tasks, I recommend using tqdm(iterator, smoothing=0, desc='calculating')
, which adds a meaningful description to the progress bar, and an accurate runtime estimate.
Resampy
Resampy resamples numpy signals. Resample your data with resample(signal, old_samplerate, new_samplerate)
. Just like with TQDM, this simple interface hides a lot of complexity and flexibility under the hood, yet remains conceptually simple and easy to use.
But beyond simplicity, resampy uses a clever implementation that is a far cry better than scipy.signal.resample
, while still being easy to install and fast. For a more thorough comparison of resampling algorithms, visit Joachim Thiemann's blog.