Contribute to NumPy

Thanks so much for being interested in contributing to NumPy! You are our kind of Pythonista!

To thrive, the NumPy project needs your expertise and enthusiasm. Not a coder? Not a problem! There are many ways to contribute to NumPy:

Our community aspires to treat everyone equally, and to value all contributions. Please take note of our Code of Conduct. Try to follow this code in spirit as much as in letter, to foster an open and welcoming environment that enriches the entire open source ecosystem.

How to get started

For the process of contributing to the NumPy code base, we have an extensive developer guide. We don’t work with assigning issues - if you see something of interest, please dive in!

For other activities, we will attempt to give some guidance on this page. If you’re unsure of where to get started or how your skills matter to the project, please reach out to us! You can ask on the mailing list or GitHub (open an issue or comment on a relevant issue). These are our preferred communication channels (open source is open by nature!), however, if you prefer to discuss in private first, please reach out to our community coordinators at [email protected] or on Slack (send an email to [email protected] for an invite the first time).

We also have a bi-weekly community call, the details of which are announced on the mailing list. You are very welcome to join this call!

Developing educational materials

NumPy’s User Guide can use a lot of help - restructuring the contents, clearer (and more) tutorials, how-to’s on many topics, and focused explanations of concepts. We are in the process of writing up a comprehensive plan for a documentation overhaul, but already have concrete ideas. Or you may have your own. Either way, please reach out to us to discuss.

Besides content for the user guide, we are also interested in other types of educational materials - worked examples, notebooks, videos, and more. We’d love to grow our team focused on high-level documentation and educational materials.

Issue triaging

The NumPy issue tracker has a lot of open issues. It’s not easy to figure out which of those are still valid, should be prioritized, or would make good issues for new contributors. Help with triaging is always welcome. Useful activities include checking if older bugs are still present in the NumPy master branch, finding duplicate issues, adding good self-contained reproducers to issues, labeling issues correctly (this requires triage rights - please ask us), linking related issues, and more. Please just dive in and start commenting!

Website development

This website can use your help! We recommend one of two ways to go about this: either check the website issue tracker for open issues to tackle, or simply browse around and see if you can find things to improve. If you have specific skills or interests, please reach out and ask!

Graphic design

We would love to get contributions from graphic designers! This website could be further improved with new graphics. And we’d be very interested in making, e.g., our tutorials more visually engaging.

Translating website content

We aim to translate this website into multiple languages, to make NumPy more accessible to users who are more comfortable in their own language than in English. We are still putting the infrastructure in place to make this happen. We already welcome volunteers though! Please see the high-level plan and comment on this GitHub issue if you are interested to help out.


NumPy has been an all-volunteer project for most of its history, however, with the continuous growth of our user base we feel the need for funding to keep the project healthy. This SciPy'19 talk attempts to quantify the impact of recently received funding and the needs of the project. We have a number of ideas about how to obtain funding (and of course welcome more good ideas!), these all take time to execute though. Fundraising is also a skill that not many current team members have - we’d love your help!

Community coordination and outreach

Between community calls, our Twitter account, improving our documentation on processes and community topics, organizing sprints, a newsletter, and perhaps in the future a blog, there is a lot of organizing and outreach to do. We’d love to get more people involved in this important aspect of the project!