def _convert_cell_timer(cell_time_lst):
    """
    Converts a the cell timings list returned by the python extensions
    into a more user-friendly numpy structured array.

    The fields correspond to the C ``struct api_cell_timings`` defined
    in ``utils/defs.h``.

    Returns:
    --------

    cell_times : numpy structured array
        The following fields are present in the ``cell_times``:

        N1 -> number of particles in cell 1
        N2 -> number of particles in cell 2
        time_in_ns -> time taken to compute all pairs between two cells
                      (cellidx1, cellidx2)
        cellidx1, cellidx2 -> the 1-D index for the two cells
        tid -> thread-id that computed the pairs (identically 0 for
               serial/single-threaded runs)


    """
    import numpy as np
    from future.utils import bytes_to_native_str
    dtype = np.dtype([(bytes_to_native_str(b'N1'), np.int64), (
        bytes_to_native_str(b'N2'), np.int64), (bytes_to_native_str(
        b'time_in_ns'), np.int64), (bytes_to_native_str(b'cellidx1'), np.
        int32), (bytes_to_native_str(b'cellidx2'), np.int32), (
        bytes_to_native_str(b'tid'), np.int32)])
    cell_times = np.array(cell_time_lst, dtype=dtype)
    return cell_times
