Where do two 2-D arrays begin to overlap each other?
I need to find the indexes at which they start to overlap

So are you looking for indexes from A or from B?  And is B strictly rectangular?
Finding the bounding box or convex hull of B is really cheap.
I'm working with model output at the moment, and I can't seem to come up with a nice way of combining two arrays of data.  Arrays A and B store different data, and the entries in each correspond to some spatial (x,y) point -- A holds some parameter, and B holds model output.  The problem is that B is a spatial subsection of A -- that is, if the model were for the entire world, A would store the parameter at each point on the earth, and B would store the model output only for those points in Africa.
So I need to find how much B is offset from A -- put another way, I need to find the indexes at which they start to overlap.  So if A.shape=(1000,1500), is B the (750:850, 200:300) part of that, or the (783:835, 427:440) subsection?  I have arrays associated with both A and B which store the (x,y) positions of the gridpoints for each.
This would seem to be a simple problem -- find where the two arrays overlap.  And I can solve it with scipy.spatial's KDTree simply enough, but it's very slow.  Anyone have any better ideas?