首页 > 解决方案 > python中searchsorted命令的令人难以置信的错误

问题描述

命令如下

>>> s = np.array([1, 5, 2, 6, 1])
>>> s.searchsorted(3)

Python响应如下

5

这种反应真的正确吗?

标签: pythonarraysindexingcommandclosest

解决方案


是的,该searchsorted()函数找到可以插入元素以保持顺序的索引,因此函数返回的“5”意味着应该将“3”插入到末尾的索引 5 中,因为数组在文档s中没有按任何特定顺序提到该函数使用二进制搜索,因此在第一步它将“3”与 中间的元素进行比较,因此因为 2<3 该函数丢弃了假设的前半部分按顺序排列,所以左边的数组是,因为 6<3<1 没有意义,所以函数返回最后一个索引。sss[6,1]


推荐阅读