Conceptual Python for Java Developers: From Streams to Tensors
Part 7: "Thinking in Arrays" — NumPy, Vectorisation and Broadcasting
Why the for loop is the enemy of numeric Python. The ndarray and its memory model, dtypes, vectorised operations, axes, boolean masks, broadcasting rules, views vs copies, NaN handling, random generators, and cosine-similarity search from scratch.