@astrofrog  @Cadair @mhvk I use `np.hypot` all the time, but `np.linalg.norm` is new to me.  Unfortunately, it seems it's a lot slower for the 2d case:
```
In [40]: a=randn(10000)
In [41]: b=randn(10000)
In [42]: timeit np.hypot(a,b)
10000 loops, best of 3: 52.5 µs per loop
In [43]: timeit np.linalg.norm([a,b],axis=0)
1000 loops, best of 3: 1.48 ms per loop
In [44]: timeit (a**2+b**2)**0.5
10000 loops, best of 3: 40.2 µs per loop
```

weirdly, it seems ``(a**2+b**2)**0.5`` is the winner in terms of speed (although close to `hypot`).