This set of tutorials and educational materials is being developed in the numpy-tutorials repository, and is not a part of the NumPy source tree. 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.
To open a live version of the content, click the launch Binder button above.
To open each of the
.md files, right click and select “Open with -> Notebook”.
You can also launch individual tutorials on Binder by clicking on the rocket
icon that appears in the upper-right corner of each tutorial. To download a
local copy of the
.ipynb files, you can either
clone this repository
or use the download icon in the upper-right corner of each tutorial.
- Tutorial: Linear algebra on n-dimensional arrays
- Determining Moore’s Law with real data in NumPy
- Saving and sharing your NumPy arrays
- Tutorial: Deep learning on MNIST
- Tutorial: deep reinforcement learning with Pong from pixels
- Tutorial: X-ray image processing
- Tutorial: Masked Arrays
- Determining Static Equilibrium in NumPy
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.
Note: You should use CommonMark markdown cells. Jupyter only renders CommonMark.
Why Jupyter Notebooks?¶
The choice of Jupyter Notebook in this repo instead of the usual format (reStructuredText) used in the main NumPy documentation has two reasons:
Jupyter notebooks are a common format for communicating scientific information.
Jupyter notebooks can be launched in Binder, so that users can interact with tutorials
rST may present a barrier for some people who might otherwise be very interested in contributing tutorial material.
Adding your own tutorials¶
If you have your own tutorial in the form of a Jupyter notebook (an
file) and you’d like to try add it out to the repository, follow the steps below.
Create an issue¶
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.
Check out our suggested template¶
You can use this template to make your content consistent with our existing tutorials:
Upload your content¶
Remember to clear all outputs on your notebook before uploading it.
Fork this repository (if you haven't before).
In your own fork, create a new branch for your content.
Add your notebook to the
environment.yml file with the dependencies for your tutorial
(only if you add new dependencies).
README.md to include your new entry.
Create a pull request. Make sure the "Allow edits and access to secrets by maintainers" option is selected so we can properly review your submission.
🎉 Wait for review!
For more information about GitHub and its workflow, you can see this document.