np.searchSorted over 2D array
Peter Otten
__peter__ at web.de
Wed Dec 9 11:36:31 EST 2015
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