我有两个numpy数组:
arr = np.array([.10,.80,.10,.20,.60,.50,.80,1.00])
intervals = [.20,.35,.60,1.00]所需职级:
[1, 4, 1, 1, 3, 3, 4, 4]发布于 2021-12-23 17:02:53
重新塑造成一个长格式,并将每个元素与间隔进行比较。argmax()将返回您要查找的值。
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输出
array([1, 4, 1, 2, 4, 3, 4, 1], dtype=int64)发布于 2021-12-23 17:01:21
您可以为此使用np.digitize:
binned = np.digitize(arr, intervals) + 1
ans_dict = dict(zip(arr, binned))输出:
>>> ans_dict
{
0.1: 1,
0.8: 4,
0.2: 2,
0.6: 4,
0.5: 3,
1.0: 5,
}https://stackoverflow.com/questions/70465148
复制相似问题