为numpy.ndarray应用阈值

2024-09-30 08:35:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型预测类型numpy.ndarray 这些预测看起来像

y_pred = array([[0.25602802, 0.74397198],
       [0.33962464, 0.66037536],
       [0.95954497, 0.04045503],
       [0.11751671, 0.88248329],
       [0.6809288 , 0.3190712 ],
       [0.6648042 , 0.3351958 ],
       [0.21672122, 0.78327878],
       [0.52893726, 0.47106274],
       [0.45118992, 0.54881008],
       [0.36868405, 0.63131595]])

其中,内部数组的第一个值对应于0类,第二个值对应于1类。对于这个y_pred,我需要应用FNR threshold{},我也计算了它。这是最有效的方法吗

结果应该在predict接口中。例如,对[0.6824846 , 0.3175154 ]结果应该1,因为0.3175154>threshold 0.21552509277542697。对于对[0.95894656, 0.04105344],结果应该是0,因为0.04045503<threshold0.21552509277542697

我希望结果是这样的

array([1, 1, 0, 1, 0, 0, 1, 0, 1, 1])

Tags: 方法模型numpy类型threshold数组arraypredict
1条回答
网友
1楼 · 发布于 2024-09-30 08:35:26

基于两列的掩码如下所示:

(y_pred > threshold).all(1)

结果是一个布尔数组。可以对布尔值求和得到整数,也可以将它们用作索引。如果您坚持要得到0和1,您可以将其转换为整数,例如:

(y_pred > threshold).all(1).astype(int)

不复制任何数据,您可以执行以下操作:

(y_pred > threshold).all(1).view(np.uint8)

相关问题 更多 >

    热门问题