> On 5/28/2011 3:40 PM, Robert wrote:
>> (myarray in mylist) turns into mylist.__contains__(myarray).
>> Only the list object is ever checked for this method. There is no
>> paired method myarray.__rcontains__(mylist) so there is nothing that
>> numpy can override to make this operation do anything different from
>> what lists normally do,

however, numpy arrays should be able to override "in" be defining their 
own.__contains__ method, so you could do:

something in an_array

and get a useful, vectorized result.

So I thought I'd see what currently happens when I try that:

In [24]: a
Out[24]: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

In [25]: 3 in a
Out[25]: True

So the simple case works just like a list. But what If I want what the 
OP wants:

In [26]: b
Out[26]: array([3, 6, 4])

In [27]: b in a
Out[27]: False

OK, so the full b array is not in a, and it doesn't "vectorize" it, 
either. But:

In [29]: a
Out[29]:
array([[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8],
        [ 9, 10, 11]])

In [30]: b in a
Out[30]: True

HUH?

I'm not sure by what definition we would say that b is contained in a.

but maybe..

In [41]: b
Out[41]: array([  4,   2, 345])

In [42]: b in a
Out[42]: False

so it's "are all of the elements in b in a somewhere?" but only for 2-d 
arrays?


So what does it mean?

The docstring is not helpful:

In [58]: np.ndarray.__contains__?
Type:           wrapper_descriptor
Base Class:     <type 'wrapper_descriptor'>
String Form:    <slot wrapper '__contains__' of 'numpy.ndarray' objects>
Namespace:      Interactive
Docstring:
     x.__contains__(y) <==> y in x


If nothing useful, maybe it could provide a vectorized version of "in" 
for this sort of use case.

-Chris






-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

chris.bar...@noaa.gov
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to