I use npcs a lot fro ev training as it can be done faster with them.
I have memorised a lot of trainers and what evs they have but I feel theres room for improvement.
I suggest that the ev yield of a battle be displayed over the npc's head when some button is pressed.
I usually use this guide to decide what trainers to battle http://strategywiki.org/wiki/Pok%C3%A9mon_FireRed_and_LeafGreen/Route_12-13
For Example Ned the fisherman has 2 goldeens and a poliwag.
Over his head would appear [0,2,0,0,0,1] as goldeen has one atk ev each and poliwag has one speed ev.