¿Cómo encontrar los valores más frecuentes en la ndarray numpy?

Tengo un número de ndarray con forma de (30,480,640), los ejes 1 y 2 que representan ubicaciones (latitud y longitud), el eje 0 contiene puntos de datos reales. Quiero usar el valor más frecuente a lo largo del eje 0 en cada ubicación, que es construir una nueva matriz con forma de (1,480,640) .ie:

>>> data
array([[[ 0,  1,  2,  3,  4],
        [ 5,  6,  7,  8,  9],
        [10, 11, 12, 13, 14],
        [15, 16, 17, 18, 19]],

       [[ 0,  1,  2,  3,  4],
        [ 5,  6,  7,  8,  9],
        [10, 11, 12, 13, 14],
        [15, 16, 17, 18, 19]],

       [[40, 40, 42, 43, 44],
        [45, 46, 47, 48, 49],
        [50, 51, 52, 53, 54],
        [55, 56, 57, 58, 59]]])

(perform calculation)

>>> new_data 
array([[[ 0,  1,  2,  3,  4],
        [ 5,  6,  7,  8,  9],
        [10, 11, 12, 13, 14],
        [15, 16, 17, 18, 19]]])

Los puntos de datos contendrán números flotantes negativos y positivos. ¿Cómo puedo realizar tales cálculos? ¡Muchas gracias!

Intenté con numpy.unique, pero obtuve "TypeError: unique () obtuve un argumento de palabra clave inesperado 'return_inverse'". Estoy usando numpy versión 1.2.1 instalada en Unix y no es compatible con return_inverse ... También probé modo, pero se tarda una eternidad en procesar una cantidad tan grande de datos ... entonces, ¿hay alguna forma alternativa de obtener los valores más frecuentes? Gracias de nuevo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta