Gets types accounting for numpy

    Ignore:
        import utool as ut
        import pandas as pd
        var = np.array(['a', 'b', 'c'])
        ut.get_type(var)
        var = pd.Index(['a', 'b', 'c'])
        ut.get_type(var)

def get_type(var):
    """
    Gets types accounting for numpy

    Ignore:
        import utool as ut
        import pandas as pd
        var = np.array(['a', 'b', 'c'])
        ut.get_type(var)
        var = pd.Index(['a', 'b', 'c'])
        ut.get_type(var)
    """
    if HAVE_NUMPY and isinstance(var, np.ndarray):
        if _WIN32:
            # This is a weird system specific error
            # https://github.com/numpy/numpy/issues/3667
            type_ = var.dtype
        else:
            type_ = var.dtype.type
    elif HAVE_PANDAS and isinstance(var, pd.Index):
        if _WIN32:
            type_ = var.dtype
        else:
            type_ = var.dtype.type
    else:
        type_ = type(var)
    return type_