将 numpy ndarray float 元素的类型更改为字符串

change the type of numpyndarray float element to string

我有一个 arff 文件作为输入。我读取了 arff 文件并将元素值放入 numpy ndarray.Now 我的 arff 文件包含一些“?”作为一些元素。基本上这些是由 anamod 计算的矩阵的 属性 值。无论哪个值 anamod 都无法计算,它会插入一个“?”那些的性格。我想对我的数据进行朴素贝叶斯、随机森林等预测。所以要处理'?我想使用一个像这样的输入器: 输入法(missing_values='NaN',策略='mean',轴=0) 上面的missing_values当然是字符串类型。我的问题是如何将一些 numpy ndarray 元素的类型从 float 更改为 string。我使用 my_numpy_ndarray.astype('str') == 'NaN' 检查 NaN 值,我可以成功完成,但我不确定如何将 numpyndarray 浮点元素的类型更改为字符串。

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