Elementos de contenedor por fila: Conteo de contenedores 2D vectorizado para NumPy

Tengo una matriz NumPy con valores enteros. Los valores de la matriz varían de 0 a max elemento en matriz (en otras palabras, todos los números de 0 a max elemento de datos presentados en ella). Necesito construir efectivo (eficaz significa solución rápida completamente vectorizada) para buscar el número de elementos en cada fila y codificarlos de acuerdo con los valores de la matriz.

No pude encontrar una pregunta similar, o una pregunta que de alguna manera ayudó a resolver esto.

Entonces si tengo estodata en entrada:

# shape is (N0=4, m0=4) 
1   1   0   4
2   4   2   1
1   2   3   5
4   4   4   1

la salida deseada es:

# shape(N=N0, m=data.max()+1):
1   2   0   0   1   0
0   1   2   0   1   0
0   1   1   1   0   1
0   1   0   0   3   0

Sé cómo resolver esto simplemente contando valores únicos en cada fila dedata iterando uno por uno, y luego combinando resultados teniendo en cuenta todos los valores posibles endata formación.

Mientras usa NumPy para vectorizar esto, el problema clave es que la búsqueda de cada número uno por uno es lenta y suponiendo que se presenten muchos números únicos, esta no puede ser una solución efectiva. Generalmente ambosN y el recuento de números únicos es bastante grande (por cierto,N parece ser más grande que el recuento de números únicos).

¿Alguien tiene grandes ideas?)

Respuestas a la pregunta(1)

Su respuesta a la pregunta