Noções básicas de numpy where function, o que isso faz com o array?

Eu vi o postDiferença entre diferente de zero (a), onde (a) e argwhere (a). Quando usar qual? e eu realmente não entendo o uso da função where do módulo numpy.

Por exemplo, eu tenho esse código

import numpy as np

Z =np.array( 
    [[1,0,1,1,0,0],
     [0,0,0,1,0,0],
     [0,1,0,1,0,0],
     [0,0,1,1,0,0],
     [0,1,0,0,0,0],
     [0,0,0,0,0,0]])
print Z
print np.where(Z)

Que dá:

(array([0, 0, 0, 1, 2, 2, 3, 3, 4], dtype=int64), 
 array([0, 2, 3, 3, 1, 3, 2, 3, 1], dtype=int64))

A definição de onde a função é: Retorna elementos, de x ou y, dependendo da condição. Mas isso também não faz sentido para mim

Então, o que exatamente significa a saída?

questionAnswers(1)

yourAnswerToTheQuestion