¿Cómo verificar si todos los valores en las columnas de una matriz numpy son iguales?

Quiero verificar si todos los valores en las columnas de una matriz / matriz numpy son iguales. Traté de usarreduce delufunc equal, pero no parece funcionar en todos los casos:

In [55]: a = np.array([[1,1,0],[1,-1,0],[1,0,0],[1,1,0]])

In [56]: a
Out[56]: 
array([[ 1,  1,  0],
       [ 1, -1,  0],
       [ 1,  0,  0],
       [ 1,  1,  0]])

In [57]: np.equal.reduce(a)
Out[57]: array([ True, False,  True], dtype=bool)

In [58]: a = np.array([[1,1,0],[1,0,0],[1,0,0],[1,1,0]])

In [59]: a
Out[59]: 
array([[1, 1, 0],
       [1, 0, 0],
       [1, 0, 0],
       [1, 1, 0]])

In [60]: np.equal.reduce(a)
Out[60]: array([ True,  True,  True], dtype=bool)

¿Por qué la columna central en el segundo caso también evalúa aTrue, mientras que debería serFalse?

¡Gracias por cualquier ayuda!

Respuestas a la pregunta(2)

Su respuesta a la pregunta