>>> A = np.random.randint(5, size=(10,3))
>>> A
array([[1, 3, 0],
[3, 2, 0],
[0, 2, 1],
[1, 1, 4],
[3, 2, 2],
[0, 1, 0],
[1, 3, 1],
[0, 4, 1],
[2, 4, 2],
[3, 3, 1]])
>>> idx = np.random.randint(10, size=2)
>>> idx
array([7, 6])
>>> A[idx,:]
array([[0, 4, 1],
[1, 3, 1]])
Poniéndolo junto para un caso general:
A[np.random.randint(A.shape[0], size=2), :]
Para no reemplazo (numpy 1.7.0+):
A[np.random.choice(A.shape[0], 2, replace=False), :]
No creo que haya una buena manera de generar una lista aleatoria sin reemplazo antes de 1.7. Quizás pueda configurar una pequeña definición que garantice que los dos valores no sean iguales.