We very much welcome contributions! If you have an idea or proposal for a new tutorial, please open an issue with an outline.
Don’t worry if English is not your first language, or if you can only come up with a rough draft. Open source is a community effort. Do your best – we’ll help fix issues.
Images and real-life data make text more engaging and powerful, but be sure what you use is appropriately licensed and available. Here again, even a rough idea for artwork can be polished by others.
The NumPy tutorials are powered by [`jupyter-book`][jb-docs] and the
[`MyST` document engine][mystmd].
See the linked documentation for further details.
Set up a development environment with the dependencies listed in
requirements.txt.
For example, using the built-in venv module:
python -m venv np-tutorials
source np-tutorials/bin/activate
python -m pip install -r requirements.txtThe site can then be built with:
jupyter-book start --executeThis will execute all the notebooks and start a web server to view the rendered
content locally.
View the rendered site by opening the localhost:30xy in your preferred browser (the exact port number will be printed in your terminal).
If you have your own tutorial in the form of a Jupyter notebook (an .ipynb
file) and you'd like to try add it out to the repository, follow the steps below.
Go to https://github.com/numpy/numpy-tutorials/issues and create a new issue with your proposal. Give as much detail as you can about what kind of content you would like to write (tutorial, how-to) and what you plan to cover. We will try to respond as quickly as possible with comments, if applicable.
You can use this template to make your content consistent with our existing tutorials.
For more information about GitHub and its workflow, you can see this document.