[Numpy-discussion] non-linear array manipulation
Anne Archibald
peridot.faceted@gmail....
Tue Aug 12 15:28:00 CDT 2008
2008/8/12 Nadav Horesh <nadavh@visionsense.com>:
> from numpy import *
>
> a = sqrt(maximum(0, a**2-repeat(b*c, columns).reshape(columns, rows)))
better:
import numpy as np
a = np.sqrt(np.maximum(0.0, a**2-(b*c)[np.newaxis,:]))
This doesn't have to make a temporary the size of a; instead
broadcasting rules are used to treat b*c as if it were the same shape
as a.
Also, "from numpy import *" is a good way to shoot yourself in the
foot. At least "from numpy import sqrt, maximum, repeat" would have
been safer.
Anne
More information about the Numpy-discussion
mailing list