首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy搜索排序降序

Numpy搜索排序降序
EN

Stack Overflow用户
提问于 2017-03-29 14:00:14
回答 2查看 3.7K关注 0票数 7

我试图了解如何正确使用numpy.searchsorted来找到插入元素的正确索引。当我运行以下命令时:

代码语言:javascript
复制
e = np.array([9,8,7,6])
np.searchsorted(e,5)

我得到的输出是0,这是错误的,正如我所期望的,4作为答案。对于按降序排列的数组,搜索排序可用吗?如果需要保持数组按降序排列,我有哪些选项?非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-29 14:06:27

您可以搜索反向数组,然后再反转索引:

代码语言:javascript
复制
e = np.array([9,8,7,6])
e.size - np.searchsorted(e[::-1], 5, side = "right")
# 4

注意,这里的side参数需要与直接搜索原始数组相反,如果您希望结果是一致的。

票数 14
EN

Stack Overflow用户

发布于 2017-03-29 14:11:34

您可以使用sorter可选参数来完成它。根据文档,这通常是np.argsort(e)的结果

代码语言:javascript
复制
array([3, 2, 1, 0])

你可以用这种方式更有效地生产:

代码语言:javascript
复制
np.arange(len(e)-1, -1, -1)

然后:

代码语言:javascript
复制
np.searchsorted(e, 7.5, sorter=np.arange(len(e)-1, -1, -1))

给你两个。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43095739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档