Never get in a battle of bits without ammunition
09-02, 11:00–12:30 (UTC), Track 2 (Baroja)

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 introduce the main features of in numpy in 90 mins.


Part 1 Numpy Basics

  • Introduction to NumPy Arrays
    • numpy internals schematics
    • Reshaping and Resizing
  • Numerical Data Types
    • Record Array

Part 2 Indexing and Slicing

  • Indexing numpy arrays

    • fancy indexing
    • array masking
  • Slicing & Stacking

  • Vectorization & BroadCasting

Part 3 "Advanced" NumPy

  • Serialisation & I/O
    • .mat files
  • Array and Matrix
    • Matlab compatibility
  • Memmap
  • Bits of Data Science with NumPy
  • NumPy beyond classic 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.

Project Homepage / Git

Abstract as a tweet

Using numpy the right way: a tutorial from the ground up to master numpy

Python Skill Level


Domain Expertise



General-purpose Python, Scientific data flow and persistence, Vector and array manipulation

Valerio Maggio is a Data Scientist and Post-doc Researcher.
He has a Ph.D. in Computer Science from the University of Naples “Federico II”, and he is currently enrolled as
Research/Cloud Software Engineer at FBK/MPBA.
His research interests focus on Reproducible Science and Machine/Deep Learning methods for Computational Biology and Precision Medicine.
Valerio is also a very active fellow in the Italian Python community and member of the organising committee of many
Python Conferences (i.e. EuroPython, PyCon/PyData Italy, EuroSciPy).