# Never get in battle of bits without ammunitions [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/leriomaggio/numpy-euroscipy/master) **Title Credits**: Gentle reference to the homonymous [talk](https://pyvideo.org/europython-2013/never-get-in-a-battle-of-bits-without-ammunition.html) presented at **EuroPython 2013** in Florence by my friend **riko** (_a.k.a._ Enrico Franchi ). ## Abstract The `numpy` package takes a central role in Python scientific ecosystem. This is mainly because `numpy` code has been designed with high performance in mind. This tutorial will provide materials for the most essential concepts to become confident with `numpy` and `ndarray` in (a matter of) `90 mins`. # Outline **Part I** Numpy Basics - Introduction to NumPy Arrays - numpy internals schematics - Reshaping and Resizing - Numerical Data Types - Record Array **Part II** Indexing and Slicing - Indexing numpy arrays - fancy indexing - array masking - Slicing & Stacking - Vectorization & Broadcasting **Part III** "Advanced NumPy" - Serialisation & I/O - `.mat` files - Array and Matrix - Matlab compatibility - Memmap - Bits of Data Science with NumPy - NumPy beyond `numpy` ### Python version The minimum recommended version of Python to use for this tutorial is **Python 3.5**, although Python 2.7 should be fine, as well as previous versions of Python 3. Py3.5+ is recommended due to a reference to the `@` operator in the linear algebra notebook. ## License and Sharing Material Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.