Nice overview! One thing I think you should add, which I find immensely useful is the reordering of arrays using indexing.<p>Take for example:<p><pre><code> In [2]: numpy.array([1, 2, 3])[[0, 2, 1]]
Out[2]: array([1, 3, 2])
</code></pre>
You index using a list and it gives you a view of the array with the new order (the underlying array is not changed and there is no copy being done).
Pretty, but not particularly in-depth.<p>Also, nitpick but I can't hold it: Why isn't the MSE np.mean(np.square(predictions - labels)? That's even breez-ier!
I like this. One change I would make is on the aggregation and indexing section, change the representation of single values (as opposed to single-element arrays) to not be in a coloured box. It's important that the result of these operations is a different type.
Numpy was a huge boon in college. I had mostly gotten my homework process down to editing a LaTeX file with the csv files for my datasets and then when I compiled it would first crunch the numbers with Numpy, export it as Tex, and then build a pdf.
It would be good to mention the @ operator in the matrix multiplication section.<p><a href="https://alysivji.github.io/python-matrix-multiplication-operator.html" rel="nofollow">https://alysivji.github.io/python-matrix-multiplication-oper...</a>