code: def get_numpy_dtype(obj):
      
      if ndarray is not FakeObject:
          # NumPy is available
          import numpy as np
          if isinstance(obj, np.generic) or isinstance(obj, np.ndarray):
          # Numpy scalars all inherit from np.generic.
          # Numpy arrays all inherit from np.ndarray.
          # If we check that we are certain we have one of these
          # types then we are less likely to generate an exception below.
              try:
                  return obj.dtype.type
              except (AttributeError, RuntimeError):
                  #  AttributeError: some NumPy objects have no dtype attribute
                  #  RuntimeError: happens with NetCDF objects (Issue 998)
                  return
docs: Return NumPy data type associated to obj
      Return None if NumPy is not available
      or if obj is not a NumPy array or scalar