code: def _ndarray_values(self) -> np.ndarray:
          
          if is_extension_array_dtype(self):
              return self.array._ndarray_values
          return self.values
docs: The data as an ndarray, possibly losing information.
  
          The expectation is that this is cheap to compute, and is primarily
          used for interacting with our indexers.
  
          - categorical -> codes