首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个数组中根据间隔来获得一个数字数组的秩?

如何从另一个数组中根据间隔来获得一个数字数组的秩?
EN

Stack Overflow用户
提问于 2021-12-23 16:53:26
回答 2查看 98关注 0票数 0

我有两个numpy数组:

代码语言:javascript
复制
arr = np.array([.10,.80,.10,.20,.60,.50,.80,1.00])
intervals = [.20,.35,.60,1.00]

所需职级:

代码语言:javascript
复制
[1, 4, 1, 1, 3, 3, 4, 4]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-23 17:02:53

重新塑造成一个长格式,并将每个元素与间隔进行比较。argmax()将返回您要查找的值。

代码语言:javascript
复制
import numpy as np
arr = np.array([10,80,10,20,60,50,80,100])
intervals = np.array([20,35,60,100]) # this is always increasing

(arr.reshape(-1,1) < intervals).argmax(axis=1)+1

输出

代码语言:javascript
复制
array([1, 4, 1, 2, 4, 3, 4, 1], dtype=int64)
票数 0
EN

Stack Overflow用户

发布于 2021-12-23 17:01:21

您可以为此使用np.digitize

代码语言:javascript
复制
binned = np.digitize(arr, intervals) + 1
ans_dict = dict(zip(arr, binned))

输出:

代码语言:javascript
复制
>>> ans_dict
{
    0.1: 1,
    0.8: 4,
    0.2: 2,
    0.6: 4,
    0.5: 3,
    1.0: 5,
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70465148

复制
相关文章

相似问题

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