def convert_data_array(arr, filter_func=None, converter_func=None):
    '''Filter and convert any given data array of any dtype.

    Parameters
    ----------
    arr : numpy.array
        Data array of any dtype.
    filter_func : function
        Function that takes array and returns true or false for each item in array.
    converter_func : function
        Function that takes array and returns an array or tuple of arrays.

    Returns
    -------
    array of specified dimension (converter_func) and content (filter_func)
    '''
#     if filter_func != None:
#         if not hasattr(filter_func, '__call__'):
#             raise ValueError('Filter is not callable')
    if filter_func:
        array = arr[filter_func(arr)]  # Indexing with Boolean Arrays
#     if converter_func != None:
#         if not hasattr(converter_func, '__call__'):
#             raise ValueError('Converter is not callable')
    if converter_func:
        arr = converter_func(arr)
    return array
Filter and convert any given data array of any dtype.

    Parameters
    ----------
    arr : numpy.array
        Data array of any dtype.
    filter_func : function
        Function that takes array and returns true or false for each item in array.
    converter_func : function
        Function that takes array and returns an array or tuple of arrays.

    Returns
    -------
    array of specified dimension (converter_func) and content (filter_func)