Update NDArrayLike typing for NumPy 2.0 compatibility. Methods that transform arrays (reshape, view, astype, copy, transpose, ravel) now correctly return NDArrayLike instead of Self to accurately represent shape and dtype changes in NumPy 2.0+ typing.