如何在 np 数组中添加一个字符串
How can I add a string in nparray
这是我的代码:
age=request.user.allusers.age
sex=request.user.allusers.sex
index_array = np.array(states)
index_array = [val-1 for val in index_array]
mask_array = np.zeros(193,dtype=float)
mask_array[index_array] = 1
mask_array=np.append(sex,mask_array)
mask_array=np.append(age,mask_array)
prob_array = clf.predict_proba([mask_array])
在代码中sex
是一个字符串。因此,在编译时会出现值错误。如何在 numpy 数组中附加 sex
。
这是错误:
ValueError: could not convert string to float: 'Female'
- 只需在列表中插入值
将列表作为 numpy 数组的参数
import numpy as np
age=23
sex="Female"
info_list = [age, sex]
print("This is list", info_list)
numpy_info_list = np.array(info_list)
print("This is numpy array", numpy_info_list)
输出:
This is list [23, 'Female']
This is numpy array ['23' 'Female']
通常这不利于预测以原始形式给出数据
- 相反,您可以将 Female 转换为 ===> 0,将 Male 转换为 ====> 1
- 我们应该始终尝试将值转换为数字
性别是一种可以取数值的分类数据
解决方案之一是使用 scikitlearn 标签编码器对特征进行编码,如果您对特定特征的值太多
- 我知道使用标签编码器对特征进行编码很愚蠢,但这是一个解决方案
这是一个例子...这只是一个与性有关的例子
le = preprocessing.LabelEncoder()
>>> le.fit(["male", "female"])
LabelEncoder()
>>> list(le.classes_)
['male', 'female']
>>> le.transform(["male", "male", "female"])
array([1, 1, 2]...)
其他解决方案可以是使用字典:
age=23
sex="female"
sex_map = {"male": 1, "female": 2}
info_list = [age, sex_map[sex]]
print("This is list", info_list)
输出:
This is list [23, 2]
这是我的代码:
age=request.user.allusers.age
sex=request.user.allusers.sex
index_array = np.array(states)
index_array = [val-1 for val in index_array]
mask_array = np.zeros(193,dtype=float)
mask_array[index_array] = 1
mask_array=np.append(sex,mask_array)
mask_array=np.append(age,mask_array)
prob_array = clf.predict_proba([mask_array])
在代码中sex
是一个字符串。因此,在编译时会出现值错误。如何在 numpy 数组中附加 sex
。
这是错误:
ValueError: could not convert string to float: 'Female'
- 只需在列表中插入值
将列表作为 numpy 数组的参数
import numpy as np age=23 sex="Female" info_list = [age, sex] print("This is list", info_list) numpy_info_list = np.array(info_list) print("This is numpy array", numpy_info_list)
输出:
This is list [23, 'Female'] This is numpy array ['23' 'Female']
通常这不利于预测以原始形式给出数据
- 相反,您可以将 Female 转换为 ===> 0,将 Male 转换为 ====> 1
- 我们应该始终尝试将值转换为数字
性别是一种可以取数值的分类数据
解决方案之一是使用 scikitlearn 标签编码器对特征进行编码,如果您对特定特征的值太多
- 我知道使用标签编码器对特征进行编码很愚蠢,但这是一个解决方案
这是一个例子...这只是一个与性有关的例子
le = preprocessing.LabelEncoder() >>> le.fit(["male", "female"]) LabelEncoder() >>> list(le.classes_) ['male', 'female'] >>> le.transform(["male", "male", "female"]) array([1, 1, 2]...)
其他解决方案可以是使用字典:
age=23 sex="female" sex_map = {"male": 1, "female": 2} info_list = [age, sex_map[sex]] print("This is list", info_list)
输出:
This is list [23, 2]