https://nbviewer.jupyter.org/github/vlad17/np-learn/blob/master/presentation.ipynb