python - python中searchsorted命令的令人难以置信的错误
问题描述
命令如下
>>> s = np.array([1, 5, 2, 6, 1])
>>> s.searchsorted(3)
Python响应如下
5
这种反应真的正确吗?
解决方案
是的,该searchsorted()
函数找到可以插入元素以保持顺序的索引,因此函数返回的“5”意味着应该将“3”插入到末尾的索引 5 中,因为数组在文档s
中没有按任何特定顺序提到该函数使用二进制搜索,因此在第一步它将“3”与 中间的元素进行比较,因此因为 2<3 该函数丢弃了假设的前半部分按顺序排列,所以左边的数组是,因为 6<3<1 没有意义,所以函数返回最后一个索引。s
s
s
[6,1]
推荐阅读
- c# - 无法从 c# 代码调用类模板的非虚拟函数
- ruby-on-rails - form_for 'file_field' 未显示在编辑操作中选择的文件
- javascript - Element 的 Microsoft Edge 实例返回的结果与 chrome/firefox 不同
- java - 如何修复 RecylerView 布局中按钮的位置?我不希望按钮与 RecyclerView 中的图像一起滚动
- r - 带有插入符号的决策树中属性使用的奇怪结果
- go - syscall.Entersyscall 的实现在哪里?
- atlassian-sourcetree - 从 gitignore 提交更改
- javascript - 确定在反应中选中的复选框的方法(useState)
- sas - SAS EG 编辑器宏对选择中的每一行执行操作
- c# - 使用用户控件自定义事件时,WPF 无法从文本创建事件处理程序