COVID-19 is ravaging the globe. Let’s look at the excellent Johns Hopkins dataset using Pandas. This will serve both as a guideline for getting the data and exploring on your own, as well as an example of Pandas multi-indexing in an easy to understand situation. I am currently involved in science-responds.
[Read More]Favorite posts and series
C++ 11 14 17 20 23 • macOS (AS) / Windows Setup • Azure DevOps (Python Wheels) • Conda-Forge ROOT • CLI11 • GooFit • cibuildwheel • Hist • Python Bindings • Python 2→3 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 • SSH
My classes and books
Modern CMake • CompClass • se-for-sci
My workshops
CMake Workshop • Python CPU, GPU, Compiled minicourses • Level Up Your Python • Packaging
Python libraries
pybind11 (python_example, cmake_example, scikit_build_example) • cibuildwheel • build • packaging • pipx • dependency-groups • pyproject-metadata • nox • scikit-build (core, cmake, ninja, moderncmakedomain) • meson-python • boost-histogram • Hist • UHI • Vector • GooFit • Particle • DecayLanguage • Conda-Forge ROOT • uproot-browser • Scientific-Python/cookie • repo-review • validate-pyproject(-schema-store) • flake8-errmsg • check-sdist • pytest GHA annotate-failures • Plumbum
Other projects
CLI11 • beautifulhugo • Jekyll-Indico • POVM • hypernewsviewer • AoC 2023 • AoC 2024
My sites
Scientific-Python Development Guide • IRIS-HEP • Scikit-HEP • CLARIPHY
The boost-histogram beta release

The foundational histogramming package for Python, boost-histogram, hit beta status with version 0.6! This is a major update to the new Boost.Histogram bindings. Since I have not written about boost-histogram yet here, I will introduce the library in its current state. Version 0.6.2 was based on the recently released Boost C++ Libraries 1.72 Histogram package. Feel free to visit the docs, or keep reading this post.
This Python library is part of a larger picture in the Scikit-HEP ecosystem of tools for Particle Physics and is funded by DIANA/HEP and IRIS-HEP. It is the core library for making and manipulating histograms. Other packages are under development to provide a complete set of tools to work with and visualize histograms. The Aghast package is designed to convert between popular histogram formats, and the Hist package will be designed to make common analysis tasks simple, like plotting via tools such as the mplhep package. Hist and Aghast will be initially driven by HEP (High Energy Physics and Particle Physics) needs, but outside issues and contributions are welcome and encouraged.
[Read More]Python 3.8
Python 3.8 is out, with new features and changes. The themes for this release have been performance, ABI/internals, and static typing, along with a smattering of new syntax. Given the recent community statement on Python support, we should be staying up to date with the current changes in Python. As Python 2 sunsets, we are finally in an era where we can hope to someday use the features we see coming out of Python release again!
[Read More]C++20
The final meeting for new features in C++ is over, so let’s explore the new features in C++, from a data science point of view. This is the largest release of C++ since C++11, and when you consider C++14 and C++17 to be interim releases, the entire 9 year cycle is possibly the largest yet! It may not feel quite as massive as C++11, since we didn’t have interim releases for C++11 and because C++11 is a much more complete, useful language than C++03, but this is still a really impactful release! This is also the first version to include every major feature from Bjarne Stroustrup’s “The design and Evolution of C++”, also known as D&E, from 1994!
Let’s look at the major new features, as well as collections of smaller ones.
[Read More]Setup a New Mac
Here is a list of my favorite things to do to properly setup macOS for scientific work. I periodically update it; feel free to leave a comment if something breaks. This should work on macOS 11 on Intel; see my post on Apple Silicon to track progress on a similar setup.
[Read More]Azure DevOps: Python Wheels
Note: I now highly recommend cibuildwheel instead of custom binary wheels. See GHA Pure Python Wheels and GHA Binary Wheels for modern methods to produce wheels on GitHub Actions (directly applicable to Azure, as well, with minor changes; cibuildwheel works on all most major CI providers). See my new posts on cibuildwheel!
This is the third post in a series about Azure
DevOps. This one is about making Python wheels. If you want to play
nice with Python users, or you have a complex build, this will
make your package far more accessible to users. They are faster to install and
to use and more secure. We will quickly cover making universal wheels, then we
will move on to fully compiled binaries, including C++14, manylinux2010, and
other hot topics. This series was developed to update the testing and releasing
of Python packages for Scikit-HEP. The results of this tutorial can be seen
in the boost-histogram repository, under the .ci
folder.