np.searchSorted over 2D array

Heli hemla21 at gmail.com
Thu Dec 10 09:40:58 EST 2015


Thanks Peter, 

I will try to explain what I really need. 

I have a 3D numpy array of 100*100*100 (1M elements). Then I have another numpy array of for example 10*2*10 (200 elements). I want to know if in the bigger dataset of 100*100*100, there is anywhere, where the second numpy array of 200 elements with shape 10*2*10 appears. If it does, then I want the indices of the bigger dataset where this happens.

I hope I´m making myself more clear :)
Thanks for your comments,


On Wednesday, December 9, 2015 at 5:37:07 PM UTC+1, Peter Otten wrote:
> Heli wrote:
> 
> [Please don't open a new thread for the same problem] 
> 
> > I need to check whether two 2d numpy arrays have intersections and if so I
> > will need to have the cell indices of the intersection.
> > 
> > By intersection, I exactly mean the intersection definition used in set
> > theory.
> > 
> > I will give an example of what I need to do:
> > 
> > a=[[0,1,2],[3,4,5],[6,7,8]]
> > b=[[0,1,2],[3,4,5]]
> > 
> > I would like to check whether b is subset of a and then get the indices in
> > a where b matches.
> > 
> > cellindices=[[True,True,True],[True,True,True],[False,False,False]]
> > 
> > What is the best way to do this in numpy?
> 
> Providing an example is an improvement over your previous post, but to me 
> it's still not clear what you want.
> 
> >>> functools.reduce(lambda x, y: x | y, (a == i for i in b.flatten()))
> array([[ True,  True,  True],
>        [ True,  True,  True],
>        [False, False, False]], dtype=bool)
> 
> produces the desired result for the example input, but how do you want to 
> handle repeating numbers as in 
> 
> >>> a = numpy.array([[0,1,2],[3,4,5],[3, 2, 1]])
> >>> functools.reduce(lambda x, y: x | y, (a == i for i in b.flatten()))
> array([[ True,  True,  True],
>        [ True,  True,  True],
>        [ True,  True,  True]], dtype=bool)
> 
> ?
> 
> Try to be clear about your requirement, describe it in english and provide a 
> bit of context. You might even write a solution that doesn't use numpy and 
> ask for help in translating it.
> 
> At the very least we need more/better examples.



More information about the Python-list mailing list