Submit a post
We welcome contributions from all community members.
Volunteer to review
Learn how you can help the community grow and become a member of the team.
Rewriting Awkward Array's GPU kernels in Python with NVIDIA's cuda.compute

Thousands of lines of hand-written CUDA C++, now Python. Less code, and it runs faster.

A single collision event in a particle detector holds a variable number of particles, each with a variable number of measurements:

[[1.1, 2.2, 3.3], [], [4.4, 5.5]]

Awkward Array is a Python library for manipulating nested, variable-length (“ragged”) data like this with NumPy-like idioms. It stores that data flat, as one content buffer holding every value contiguously plus an offsets array marking where each sublist begins and ends:

Read more...
A Year of Typing: My NumPy Fellowship Retrospective

It’s been exactly one year since I started my journey as a NumPy Fellow, and looking back, it has honestly been the best job I’ve ever had. My main goal for 2025 was to push the boundaries of static typing within the Scientific Python ecosystem. I’m happy to report that we didn’t just push the boundaries; we reshaped them.

Here is a high-level look at what we achieved, from making numpy fully type-checked to bridging the gap between scientific computing and the wider Python typing community.

Read more...
Pytrees for Scientific Python
This blog introduces PyTrees — nested Python data structures (such as lists, dicts, and tuples) with numerical leaf values — designed to simplify working with complex, hierarchically organized data. While such structures are often cumbersome to manipulate, PyTrees make them more manageable by allowing them to be flattened into a list of leaves along with a reusable structure blueprint in a generic way. This enables flexible, generic operations like mapping and reducing from functional programming. By bringing those functional paradigms to structured data, PyTrees let you focus on what transformations to apply, not how to traverse the structure — no matter how deeply nested or complex it is. Read more...

Browse all posts  ⟶