[Numpy-discussion] Computing the norm of an array of vectors
Robert Kern
robert.kern at gmail.com
Tue Feb 8 11:46:34 EST 2011
On Tue, Feb 8, 2011 at 10:44, Ben Gamari <bgamari.foss at gmail.com> wrote:
> I have an array of (say, row) vectors,
>
> v = [ [ a1, a2, a3 ],
> [ b1, b2, b3 ],
> [ c1, c2, c3 ],
> ...
> ]
>
> What is the optimal way to compute the norm of each vector,
> norm(v)**2 = [
> [ a1**2 + a2**2 + a3**2 ],
> [ b1**2 + b2**2 + b3**2 ],
> ...
> ]
>
> It seems clear that numpy.norm does not handle the multidimensional case
> as needed. The best thing I can think of is to do something like,
>
> sum(v**2, axis=0) * ones(3)
>
> but surely there must be a better way. Any ideas?
(v*v).sum(axis=1)[:,np.newaxis]
You can leave off the newaxis bit if you don't really need a column vector.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
-- Umberto Eco
More information about the NumPy-Discussion
mailing list