将numpy ndarray float元素的类型更改为string

时间:2015-03-15 01:35:06

标签: python numpy casting

我有一个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浮点元素的类型更改为字符串。

1 个答案:

答案 0 :(得分:0)

您无法更改普通ndarray的部分类型。 ndarray要求数组中的所有元素具有相同的numpy类型(dtype),以便可以有效地完成数学运算。执行此操作的唯一方法是将dtype更改为object,这允许您在每个元素中存储任意类型。但是,这将大大降低大多数操作的速度,并使某些操作不可能或不可靠(例如添加两个数组)。