Numpy Lookup (Mapa o Punto)

Tengo una gran matriz numpy:

array([[32, 32, 99,  9, 45],  # A
       [99, 45,  9, 45, 32],
       [45, 45, 99, 99, 32],
       [ 9,  9, 32, 45, 99]])

y una gran variedad de valores únicos en un orden particular:

array([ 99, 32, 45, 9])       # B

¿Cómo puedo hacerlo rápidamente (sin diccionarios de Python, sin copias deA, sin bucles de python) reemplaza los valores enA para que se conviertan en las indicaciones de los valores enB?:

array([[1, 1, 0, 3, 2],
       [0, 2, 3, 2, 1],
       [2, 2, 0, 0, 1],
       [3, 3, 1, 2, 0]])

Me siento realmente tonto por no poder hacer esto fuera de mi cabeza, ni encontrarlo en la documentación. ¡Puntos fáciles!

Respuestas a la pregunta(2)

Su respuesta a la pregunta