If it is in numpy why are we re-implementing it? Is our version faster?