Re: np.searchSorted over 2D array
On 10 Dec 2015 14:46, "Heli"wrote: > > 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. > So you want to find N in M. First find all occurrences of N[0][0][0] in M[:90][:98][:90]. Then for each of those extract the same size subview from M and check if (Ms == N).all(). -- Oscar -- https://mail.python.org/mailman/listinfo/python-list
Re: np.searchSorted over 2D array
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. -- https://mail.python.org/mailman/listinfo/python-list
Re: np.searchSorted over 2D array
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. -- https://mail.python.org/mailman/listinfo/python-list
np.searchSorted over 2D array
Dear all, 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? Thanks in Advance for your help, -- https://mail.python.org/mailman/listinfo/python-list