[Numpy-discussion] numarray.where confusion
Alok Singhal
as8ca at virginia.edu
Wed May 26 07:49:40 EDT 2004
Hi,
I am having trouble understanding how exactly "where" works in
numarray.
What I am trying to do:
I am preparing a two-level mask in an array and then assign values to
the array where both masks are true:
>>> from numarray import *
>>> a = arange(10)
>>> # First mask
>>> m1 = where(a > 5)
>>> a[m1]
array([6, 7, 8, 9])
>>> # Second mask
>>> m2 = where(a[m1] < 8)
>>> a[m1][m2]
array([6, 7])
>>> # So far so good
>>> # Now change some values
>>> a[m1][m2] = array([10, 20])
>>> a[m1][m2]
array([6, 7])
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> # Didn't work
>>> # Let's try a temporary variable
>>> t = a[m1]
>>> t[m2]
array([6, 7])
>>> t[m2] = array([10, 20])
>>> t[m2], t
(array([10, 20]), array([10, 20, 8, 9]))
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
So, my assignment to a[m1][m2] seems to work (no messages), but it
doesn't produce the effect I want it to.
I have read the documentation but I couldn't find something that would
explain this behavior.
So my questions:
- did I miss something important in the documentation,
- I am expecting something I shouldn't, or
- there is a bug in numarray?
Thanks,
Alok
--
Alok Singhal (as8ca at virginia.edu) __
Graduate Student, dept. of Astronomy / _
University of Virginia \_O \
http://www.astro.virginia.edu/~as8ca/ __/
More information about the NumPy-Discussion
mailing list