a.view(some_dtype) or a.view(dtype=some_dtype) constructs a view of
the array’s memory with a different dtype. This can cause a
reinterpretation of the bytes of memory.

a.view(ndarray_subclass), or a.view(type=ndarray_subclass), just
returns an instance of ndarray_subclass that looks at the same array (same
shape, dtype, etc.). This does not cause a reinterpretation of the memory.