This document discusses recent updates to NumPy and SciPy. Key updates include a complete overhaul of NumPy's random number generators and Fourier transform implementations. NumPy's __array_function__ protocol is now enabled by default, allowing other libraries to reuse the NumPy API. The NumPy array protocols were developed to separate the NumPy API from its execution engine. This avoids ecosystem fragmentation and allows the NumPy API to work with GPUs and distributed arrays via libraries like Dask. SciPy's FFT functions were reimplemented for increased speed and accuracy, and a new scipy.fft submodule was added, representing the first new SciPy submodule in a decade. Additional new global optimizers were also added to SciPy.