我有一个arff文件作为输入。我读了arff文件并将元素值放在一个numpy ndarray.Now我的arff文件中包含一些'?'作为一些元素。基本上这些是由anamod
计算的矩阵的属性值。无论哪个值anamod
无法计算,它都插入'?'那些人的性格。我想为我的数据做一个Naive baiyes,Random Forest等预测。那么要处理'?'我想使用像这样的imputer:
Imputer(missing_values ='NaN',strategy ='mean',axis = 0)
上面的missing_values当然是string类型。我的问题是如何将一些numpy ndarray元素的类型从float更改为string。我使用my_numpy_ndarray.astype('str')=='NaN'来检查NaN值,我可以成功完成,但我不知道如何将numpyndarray浮点元素的类型更改为字符串。
答案 0 :(得分:0)
您无法更改普通ndarray
的部分类型。 ndarray
要求数组中的所有元素具有相同的numpy
类型(dtype
),以便可以有效地完成数学运算。执行此操作的唯一方法是将dtype
更改为object
,这允许您在每个元素中存储任意类型。但是,这将大大降低大多数操作的速度,并使某些操作不可能或不可靠(例如添加两个数组)。