为numpy. narray应用阈值



我有一个模型预测类型为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,我需要应用FNRthreshold0.21552509277542697,我也计算过。这是最有效的愚蠢的方法吗?

结果应该是在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])

基于两列的掩码如下:

(y_pred > threshold).all(1)

结果是一个布尔值数组。您可以将布尔值相加以得到整数,或者将它们用作索引。如果你绝对坚持要得到0和1,你可以转换成整数,例如:

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

不复制任何数据,你可以这样做:

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