假设我有一个已经排序的numpy数组。
>>> x
array([[1, 2, 3, 1],
[2, 2, 3, 2],
[2, 3, 3, 4],
[3, 4, 4, 4],
[4, 5, 5, 5]])我想在前两列的基础上做一个右二分法。
类似于(quasicode)的numpy.searchsorted(x, [2, 2], side='right'),应该返回2,这是[2, 2, 3, 2]和[2, 3, 3, 4]之间的索引。
发布于 2014-04-03 21:48:40
这个怎么样:
>>> i1 = np.searchsorted(x[:, 0], 2, side='l')
>>> i2 = np.searchsorted(x[i1:, 0], 2, side='r')
>>> i3 = np.searchsorted(x[i1:i1+i2, 1], 2, side='r')
>>> i1 + i3
2https://stackoverflow.com/questions/22848290
复制相似问题