o método médio da matriz numpy.ma (mascarado) possui um tipo de retorno inconsitente

Notei que ométodo médio numpy masked-array retorna tipos diferentes quando provavelmente não deveria:

import numpy as np

A = np.ma.masked_equal([1,1,0], value=0)
B = np.ma.masked_equal([1,1,1], value=0) # no masked values

type(A.mean())
#numpy.float64
type(B.mean())
#numpy.ma.core.MaskedArray

De outrosnumpy.ma.core.MaskedArray métodos parecem ser consistentes

type( A.sum()) == type(B.sum())
# True
type( A.prod()) == type(B.prod())
# True
type( A.std()) == type(B.std())
# True
type( A.mean()) == type(B.mean())
# False

Alguém pode explicar isso?

ATUALIZAR: Como apontado nos comentários

C = np.ma.masked_array([1, 1, 1], mask=[False, False, False])
type(C.mean()) == type(A.mean())
# True 

questionAnswers(1)

yourAnswerToTheQuestion