为了让我的问题更清楚地说,如果我有一个数组Out [123]:[1、3、4、6、9、10、54]当我尝试搜索列表中的数字时,searchsort返回正确的值,但是当我尝试了不在列表中的内容,它返回了一个荒谬的值
这是一些结果
In [131]: a Out[131]: [1, 3, 4, 6, 9, 10, 54] In [132]: searchsorted(a,1) Out[132]: 0 In [133]: searchsorted(a,6) Out[133]: 3 In [134]: searchsorted(a,[9,54,1]) Out[134]: array([4, 6, 0]) In [135]: searchsorted(a,[9,54,1,0]) Out[135]: array([4, 6, 0, 0]) ***> # here 0 is not in the list, but turns up @ position 0*** In [136]: searchsorted(a,740) Out[136]: 7 ***> # here 0 is not in the list, but turns up @ position 7***
为什么会这样呢?
searchsorted告诉你 其中 的元素属于保证排序:
searchsorted
将索引查找到排序数组a中, 这样,如果v中的相应元素在索引之前插入,则将保留a的顺序。
插入740位置7将保留顺序,就像在位置0插入0一样。
740