Data Science requires speed. Python lists are slow. NumPy introduces highly-optimized, C-based arrays that allow you to perform mathematical operations on entire datasets simultaneously through vectorization.
1The Magic of Vectorization
Instead of writing for-loops to process data element-by-element, NumPy allows you to apply mathematical operations directly to arrays. This is called vectorization, and it pushes the heavy lifting to optimized C code, resulting in massive speed improvements.
2Broadcasting Principles
Broadcasting is the rule-set NumPy uses to perform arithmetic between arrays of different shapes. It 'stretches' the smaller array across the larger one, enabling operations like adding a scalar to a matrix without explicit duplication.