Cómo reducir en una lista de tuplas en python

Tengo una matriz y quiero contar la aparición de cada elemento en la matriz.

He logrado usar una función de mapa para producir una lista de tuplas.

def mapper(a):
    return (a, 1)

r = list(map(lambda a: mapper(a), arr));

//output example: 
//(11817685, 1), (2014036792, 1), (2014047115, 1), (11817685, 1)

Espero que la función de reducción pueda ayudarme a agrupar los recuentos por el primer número (id) en cada tupla. Por ejemplo:

(11817685, 2), (2014036792, 1), (2014047115, 1)

Lo intenté

cnt = reduce(lambda a, b: a + b, r);

y algunas otras formas, pero no todos hacen el truco.

NOTA Gracias por todos los consejos sobre otras formas de resolver los problemas, pero solo estoy aprendiendo Python y cómo implementar una reducción de mapas aquí, y he simplificado mucho mi problema comercial real para que sea fácil de entender, así que por favor amablemente muéstrame una forma correcta de hacer map-reduce.

Respuestas a la pregunta(4)

Su respuesta a la pregunta