emovendo linhas com duplicatas em uma matriz Num

Eu tenho um(N,3) matriz de valores numpy:

>>> vals = numpy.array([[1,2,3],[4,5,6],[7,8,7],[0,4,5],[2,2,1],[0,0,0],[5,4,3]])
>>> vals
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 7],
       [0, 4, 5],
       [2, 2, 1],
       [0, 0, 0],
       [5, 4, 3]])

Gostaria de remover linhas da matriz que tenham um valor duplicado. Por exemplo, o resultado para a matriz acima deve ser:

>>> duplicates_removed
array([[1, 2, 3],
       [4, 5, 6],
       [0, 4, 5],
       [5, 4, 3]])

Não sei ao certo como fazer isso de maneira eficiente com numpy sem loop (a matriz pode ser bem grande). Alguém sabe como eu poderia fazer isso?

questionAnswers(5)

yourAnswerToTheQuestion