Quansight Labs Blog
labs.quansight.org · Company blog · on HN since 2019
Quansight Labs engineers write about Python scientific computing, covering NumPy, SciPy, Polars, free-threaded Python and CPython internals.
What HN saysHN commenters link it for free-threaded Python garbage collection details, building SciPy with Flang, and Polars versus pandas group-by comparisons.
31HN people shared it
8linked it in comments
49stories submitted
1.2Kstory points
3 months agolast shared
2019people per year2026
Most-shared posts
- 1Scaling Asyncio on Free-Threaded Python5 people · 12 points · first shared 2025 · discussion on HN
- 2Writing fast string ufuncs for NumPy 2.04 people · 7 points · first shared 2024 · discussion on HN
- 3Why SciPy builds for Python 3.12 on Windows are a minor miracle4 people · 2 points · first shared 2023 · 1 comments on HN
- 4Using Pyflyby to speed up interactive development with Python3 people · 6 points · first shared 2021 · discussion on HN
- 5What Every Python Developer Should Know About the CPython ABI3 people · 3 points · first shared 2026 · discussion on HN
- 6The first year of free-threaded Python2 people · 314 points · first shared 2025 · 290 comments on HN
- 7Non-elementary group-by aggregations in Polars vs pandas2 people · 135 points · first shared 2024 · 74 comments on HN
- 8Moving SciPy to the Meson Build System2 people · 96 points · first shared 2021 · 32 comments on HN
- 9Expressions Are Coming to Pandas2 people · 7 points · first shared 2025 · discussion on HN
- 10Narwhals and scikit-Lego came together to achieve dataframe-agnosticism2 people · 5 points · first shared 2024 · 1 comments on HN
- 11Unlocking Performance in Python's Free-Threaded Future: GC Optimizations2 people · 3 points · first shared 2025 · discussion on HN
- 12Scaling NumPy on Free-Threaded Python2 people · 2 points · first shared 2026 · discussion on HN
- 13Free-threaded CPython is ready to experiment with1 people · 532 points · first shared 2024 · 378 comments on HN
- 14NumPy QuadDType: Quadruple Precision for Everyone1 people · 59 points · first shared 2024 · 55 comments on HN
- 15Versioned HDF51 people · 4 points · first shared 2020 · 2 comments on HN
What HN people wrote when they linked it
travisoliphant · 2019-11-26
Travis Oliphant, here. OpenTeams is much bigger than me, but I have been part of the early team putting energy into the effort. Henry has captured some of the personal motivations for me. They are sincere. There are plenty of ways for me to make money more easily than wrestling with the economics of open-source software. This is my calling and something I care about a lot. You can watch a video of me talking something about this here: https://www.youtube.com/watch?v=MCEUPosJuIY if you want to get to know me better.
I have had the privilege of watching open-source projects I started or participated in get used by millions. I want to see a world where more people are paid a great living to work on open-source software. There are several approaches to improving the funding fabric for open-source. OpenTeams is one of them. Quansight Initiate (http://www.qi.ventures) is another one. Quansight Labs (http://labs.quansight.org) and Quansight (http://www.quansight.com) are others. A group of us are also working on a few other ideas including FairOSS (not going to give the website because it is a behind-the scenes operation for now --- ping me if you are interested in learning more).
I have spent many years writing open-source software, improving open-source ecosystems, hiring open-source developers, and paying people to work on open-source software. I have also spent the past 12 years in particular working in industry watching open-source get used and seeing the disconnect…
anentropic · 2022-01-12
Great write up!
A small typo here (in the companion blog post https://labs.quansight.org/blog/2022/01/ipython-8.0-lessons-learned-ma… I think:
> Python has multiline strings with triple backticks
I think this should say "quote marks" instead of "backticks" since backticks are a different char, Python strings use single- or double-quote char, and three of them delimits a multiline string.
simonw · 2026-05-13
The no-GIL work (free-threading) is unrelated to this incremental GC work.
Free-threading actually uses its own, separate GC: https://labs.quansight.org/blog/free-threaded-gc-3-14
ggraphilia · 2025-03-09
It may not be that simple on Windows : https://labs.quansight.org/blog/building-scipy-with-flang
benrutter · 2024-11-20
Not OP but the ability to natively implement complex groupby logic is a huge plus for me at least.
Say you want to take an aggergation like "the mean of all values over the 75th percentile" algonside a few other aggregations. In pandas, this means you're gonna be in for a bunch of hoops and messing around with stuff because you can't express it via the api. Polars' api lets you express this directly without having to implement any kind of workaround.
Nice article on it here: https://labs.quansight.org/blog/dataframe-group-by
steppi · 2023-12-26
The 'eu' in eucatastrophe – Why SciPy builds for Python 3.12 on Windows are a minor miracle
https://labs.quansight.org/blog/building-scipy-with-flang
goodside · 2021-07-09
I think the motivation there historically was to encourage use of generators and generator expressions — it’s definitely intentional, because things like `apply` and `reduce` used to be builtins but now they’re imports.
If you reach for itertools imports often in an interactive REPL, you might be interested in Pyflyby: https://labs.quansight.org/blog/2021/07/pyflyby-improving-efficiency-o…
zahlman · 2024-11-16
I hadn't realized how popular the `regex` package is ( https://pypistats.org/packages/regex). That's almost as frequently downloaded as `build`, the PyPA standard build front-end, and well ahead of e.g. `ipython`.
One common frustration with Python development is that people with new ideas nowadays are often dismissed "for now" and told to implement their idea as a package and put it on PyPI, and demonstrate that there's demand.
Of course, that puts responsibility for publicizing the idea on the developer. And then if a new package does succeed, suddenly there's no reason why it needs to be brought in to the standard library, where it would become a maintenance burden for core devs, would join "where libraries go to die", etc.
One might imagine, then, that Python has fully embraced the modern idea of having a minimalist standard library while popular third-party packages are installed almost by default, as part of the "ecosystem". A rejection, IOW, of "batteries included". Except - even very conservative changes, like finally removing `distutils` after waiting all the way until 3.12, still nearly cause catastrophe (https://labs.quansight.org/blog/building-scipy-with-flang).