You can fancy-index using the indices np.arange(len(A))
on first dimension (since you want a value per row), and your indices (squeezed), which correspond to the index on each row, on the second dimension:
A[np.arange(len(A)) , indices.squeeze()]
=> matrix([[3, 6, 9]])