Update np.float_ and np.complex_ to match Numpy 2.0.
Update np.float_ and np.complex_ to match Numpy 2.0.

Numpy 2.0 removed the aliases np.float_ and np.complex_. Direct usages of np.float_ and np.complex_ are replaced with np.float64 and np.complex128, respectively. 
See https://github.com/numpy/numpy/issues/24743 and https://numpy.org/devdocs/numpy_2_0_migration_guide.html#changes-to-namespaces.

Consistent with JAX, TF retains dtype wrappers for float_ and complex_. This is considered useful for determining the default float/complex type, providing compatibility with older code that might still rely on these aliases.
