[SciPy-user] extract array elements whis where() output

Robert Kern robert.kern at gmail.com
Wed Jun 21 15:12:55 CDT 2006


Steve Schmerler wrote:
> First of all: what's better (a) post this only on the numpy list (b) 
> only on the scipy list (I think many scipy users may find the answer to 
> questions like this one interesting) or (c) post on both.

Probably (a). (c) should never be done except for single-shot announcements.

> I can't extract elements from array x with a mask array of indices but 
> x.take (Numeric style works). I'm sure that I have done such things 
> before .... and they worked.
> 
> In [58]: x
> Out[58]: array([0, 0, 1, 2, 3, 0, 0, 9])
> 
> In [59]: mask=where(x!=0.0)[0]
> 
> In [60]: mask
> Out[60]: array([2, 3, 4, 7])
> 
> In [61]: x.take(mask)
> Out[61]: array([1, 2, 3, 9])
> 
> In [62]: x(mask)
> ---------------------------------------------------------------------------
> exceptions.TypeError                                 Traceback (most 
> recent call last)
> 
> /home/elcorto/ode_testdata/<ipython console>
> 
> TypeError: 'numpy.ndarray' object is not callable

You meant x[mask], not x(mask).

-- 
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 SciPy-user mailing list