順序付けられた1D配列のタプルが与えられた場合、配列が最大の共通範囲にまたがるように、(arr1, arr2, arr3, )
最小/最大インデックスのタプルを取得するための最良の方法はどれでしょうか。((min1, max1), (min2, max2), (min3, max3), )
私が言いたいのは
min(arr[min1], arr2[min2], arr3[min3]) > max(arr1[min1-1], arr2[min2-1], arr3[min3-1])
と
max(arr[min1], arr2[min2], arr3[min3]) < min(arr1[min1+1], arr2[min2+1], arr3[min3+1])
上限についても同じですか?
例:
与えられarange(12)
てarange(3, 8)
、私は取得したい((3,8), (0,6))
、という目標を持っていarange(12)[3:8] == arange(3,8)[0:6]
ます。
編集配列はfloatまたは整数である可能性があることに注意してください。
これが紛らわしい場合は申し訳ありません。今はもっと簡単な言葉が見つかりません。どんな助けでも大歓迎です!
EDIT2/回答私は自分の質問を作成するのがひどいことに気づきました。私はこのように私が望んでいたことを解決することになりました:
mins = [np.min(t) for t in arrays]
maxs = [np.max(t) for t in arrays]
lower_bound = np.max(mins)
upper_bound = np.min(maxs)
lower_row = [np.searchsorted(arr, lower_bound, side='left') for arr in arrays]
upper_row = [np.searchsorted(arr, upper_bound, side='right') for arr in arrays]
result = zip(lower_row, upper_row)
ただし、どちらの回答も私が尋ねた質問に対して有効であるように思われるため、どちらか一方だけを「正しい」として選択するかどうかはわかりません。どうすればよいですか。