NumPy InternalsNumPy memory layout, strides, broadcasting, vectorisation, and ufuncs - how NumPy achieves C-speed from Python.