[Numpy-discussion] Putmask/take ?
Stefan van der Walt
stefan at sun.ac.za
Fri Sep 22 02:02:51 CDT 2006
Hi P.,
On Thu, Sep 21, 2006 at 07:40:39PM -0400, PGM wrote:
> I'm running into the following problem with putmask on take.
>
> >>> import numpy
> >>> x = N.arange(12.)
> >>> m = [1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1]
> >>> i = N.nonzero(m)[0]
> >>> w = N.array([-1, -2, -3, -4.])
> >>> x.putmask(w,m)
> >>> x.take(i)
> >>> N.allclose(x.take(i),w)
According to the putmask docstring:
a.putmask(values, mask) sets a.flat[n] = v[n] for each n where
mask.flat[n] is true. v can be scalar.
This would mean that 'w' is not of the right length. Would the
following do what you want?
import numpy as N
m = N.array([1,0,0,0,0,0,1,0,0,1,0,1],dtype=bool)
w = N.array([-1,-2,-3,-4])
x[m] = w
Regards
Stéfan
More information about the Numpy-discussion
mailing list