Py学习  »  Python

如何将带有浮点数的python数组转换为具有二进制值(0&1)的数组

morelloking • 5 年前 • 1594 次点击  

如何将浮点数组转换为二进制数数组(即0和1)?

我预测分类问题的值和值1表示有毒评论,值0表示无毒评论。我预测的测试标签是一个带有e-0x的浮点数组,x的范围是1到7。如何将预测的标签转换为0和1?

array([[9.8556435e-01, 3.3385050e-01, 9.6424425e-01, 5.6063890e-02,
        7.9712880e-01, 2.6943371e-01],
       [1.0463297e-03, 5.6922436e-06, 2.0974874e-04, 1.3053417e-05,
        1.3548136e-04, 4.4524670e-05],
       [1.5031695e-03, 9.3579292e-06, 2.6571751e-04, 3.0487776e-05,
        1.6680360e-04, 7.6472759e-05],
       ...,
       [2.4601817e-04, 6.2584877e-07, 5.6475401e-05, 1.6391277e-06,
        2.2351742e-05, 6.7055225e-06],
       [1.1185408e-03, 6.9439411e-06, 1.5538931e-04, 4.7504902e-05,
        1.0922551e-04, 3.1569600e-04],
       [9.7941959e-01, 7.9966664e-02, 9.3608207e-01, 8.6713731e-03,
        5.5538106e-01, 2.1400809e-02]], dtype=float32)

实际结果应该是0和1的数组

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47047
 
1594 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Amadan
Reply   •   1 楼
Amadan    5 年前

你很有可能被淘汰了。 9.8556435e-01 (也称为 0.98556435 )意味着该分类器认为其有98.556435%的中毒概率。 1.0463297e-03 (也称为 0.0010463297 意味着只有0.10463297%的可能性是有毒的。您可以设置50%作为断点,并按如下方式执行:

toxic = toxic_prob >= 0.5
d_kennetz
Reply   •   2 楼
d_kennetz    5 年前

您可以通过设置截断来设置此后数组生成。我已经建立了一个虚拟的例子,在这里我得到了非常小的值

zeroes = (np.arange(1, 10, 2))/1000500
print(zeroes)
##
#[9.99500250e-07 2.99850075e-06 4.99750125e-06 6.99650175e-06
# 8.99550225e-06]

zeroes[zeroes >= 5e-6] = 1
zeroes[zeroes < 5e-6] = 0
print(zeroes)
# [0. 0. 0. 1. 1.]

在这种情况下,所有小于5e-6的数组值都被赋值为0,所有大于等于5e-6的值都被赋值为1。分配你的截止值并应用过滤器。