For the rendered tutorials, see https://numpy.org/numpy-tutorials/.
The goal of this repository is to provide high-quality resources by the NumPy project, both for self-learning and for teaching classes with. If you're interested in adding your own content, check the Contributing section. This set of tutorials and educational materials is not a part of the NumPy source tree.
To download a local copy of the .ipynb
files, you can either
clone this repository
or navigate to any of the documents listed below and download it individually.
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 a curated collection of MyST-NB notebooks. These notebooks are used to produce static websites and can be opened as notebooks in Jupyter using Jupytext.
Note: You should use CommonMark markdown cells. Jupyter only renders CommonMark.
The choice of Jupyter Notebook in this repo instead of the usual format (reStructuredText, through Sphinx) used in the main NumPy documentation has two reasons:
You may notice our content is in markdown format (.md
files). We review and
host notebooks in the MyST-NB format. We
accept both Jupyter notebooks (.ipynb
) and MyST-NB notebooks (.md
). If you want
to sync your .ipynb
to your .md
file follow the pairing
tutorial.
If you have your own tutorial in the form of a Jupyter notebook (a .ipynb
file) and you'd like to add it 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 our Tutorial Style Guide to make your content consistent with our existing tutorials.
content/
directory.
environment.yml
file with the dependencies for your
tutorial (only if you add new dependencies).
README.md
to include your new entry.
For more information about GitHub and its workflow, you can see this document.
Building the tutorials website, which is published at https://github.com/numpy/numpy-tutorials, locally isn't necessary before making a contribution, but may be helpful:
conda env create -f environment.yml
conda activate numpy-tutorials
cd site
make html
While we don't have the capacity to translate and maintain translated versions of these tutorials, you are free to use and translate them to other languages.
The following links may be useful:
Note that regular documentation issues for NumPy can be found in the main NumPy
repository (see the Documentation
labels there).