如何将包含字符串列表的numpy数组转换为包含0和1列表的数组?

如何将包含字符串列表的numpy数组转换为包含0和1列表的数组?,numpy,scikit-learn,data-science,bayesian,Numpy,Scikit Learn,Data Science,Bayesian,现在,我有一个numpy数组,其中包含对电子邮件是“垃圾邮件”还是“火腿”的预测。所以基本上是垃圾邮件预测模型的结果。我想将其与包含所用测试集类的数组进行比较。当我对它们使用多项式nb.score()方法时,我得到一个错误,因为它是用来比较浮点值而不是字符串的 那么,如何根据列表条目是“spam”还是“ham”将这两个数组更改为浮点值呢?更好的是,有没有另一种更好的方法来定量测量模型的质量?假设您已经获得了y\u true和y\u predicted,然后使用以下方法: import numpy

现在,我有一个numpy数组,其中包含对电子邮件是“垃圾邮件”还是“火腿”的预测。所以基本上是垃圾邮件预测模型的结果。我想将其与包含所用测试集类的数组进行比较。当我对它们使用
多项式nb.score()
方法时,我得到一个错误,因为它是用来比较浮点值而不是字符串的


那么,如何根据列表条目是“spam”还是“ham”将这两个数组更改为浮点值呢?更好的是,有没有另一种更好的方法来定量测量模型的质量?

假设您已经获得了
y\u true
y\u predicted
,然后使用以下方法:

import numpy as np


y_test = np.array(['ham', 'spam', 'ham', 'spam', 'ham', 'ham', 'ham', 'ham', 
                   'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 
                   'ham', 'ham', 'ham', 'spam','ham', 'ham', 'spam'], dtype=object)

y_predicted = np.array(['ham', 'spam', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham',
                        'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 
                        'ham', 'ham', 'ham', 'spam','ham', 'ham', 'spam'], dtype=object)

y_test[y_test == 'ham']=0
y_test[y_test == 'spam']=1

y_predicted[y_predicted == 'ham']=0
y_predicted[y_predicted == 'spam']=1
结果:

print(y_test=
#array([0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], dtype=object)

print(y_predicted)
#array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], dtype=object)

你能给出一些示例数据吗?数组(['ham',spam',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',spam',ham',ham',ham',ham ham',ham ham火腿',ham ham ham ham',ham ham ham ham ham',ham ham ham ham ham ham',ham ham ham ham,这是预测数组(['ham',spam',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',ham',spam',ham ham',ham ham ham ham spam',ham ham ham,dtype='关于
a=='ham'
?我尝试使用for-a循环对它们进行迭代更改,如下所示:对于c,测试类中的x:if x=='ham':测试类[c]=0,但我得到了一个ValueError:太多的值无法解压缩(预期为2)@AhmedSamir请在您有其他信息时编辑您的问题。人们往往会忽略注释,并且您无法在注释中正确设置代码格式。