def METHOD_NAME(np_data, linked_outputs, output_numpy):
    unique = []
    unique_indices = []
    unique_inverse = []
    unique_count = []
    if any(linked_outputs):
        arg = {
            'return_index' : linked_outputs[0],
            'return_inverse' : linked_outputs[1],
            'return_counts' : linked_outputs[2],
            'axis': 0
        }
        unique_data = np.unique(np_data, **arg)
        unique = unique_data[0] if output_numpy else unique_data[0].tolist()
        idx = 1
        if linked_outputs[0]:
            unique_indices = unique_data[idx] if output_numpy else unique_data[idx].tolist()
            idx += 1
        if linked_outputs[1]:
            unique_inverse = unique_data[idx] if output_numpy else unique_data[idx].tolist()
            idx += 1
        if linked_outputs[2]:
            unique_count = unique_data[idx] if output_numpy else unique_data[idx].tolist()
    else:
        unique = np.unique(np_data, axis=0) if output_numpy else np.unique(np_data, axis=0).tolist()
    return unique, unique_indices, unique_inverse, unique_count