我有兩個 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]
uj5u.com熱心網友回復:
重塑為長格式并將每個元素與間隔進行比較。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)
uj5u.com熱心網友回復:
您可以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://www.uj5u.com/shujuku/391874.html
上一篇:從掩碼Python中獲取切片索引
