在做深度学习数据预处理的时候遇到报错:TypeError: can't convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint64, uint32, uint16, uint8,在此记录解决方法

报错原因:假如Dataframe对象中某列存储的数据类型为float,另一列为int或其他不一样的数据类型,在将Dataframe对象转换为ndarray对象时默认存储的是同样的数据类型,所以Python就会自动把数据都转换成object对象(所有数据对象的基类)进行存储,而这样的ndarray数组是无法直接转换成tensor的,因为其中的数据为object类型
解决方法:转换成ndarray数组的时候进行强制类型转换(如有字符串等可能需要先处理再转换或分开处理最后再拼接)
ndarr=consumption_data.to_numpy(dtype=np.float32)
tensor_consumption_data=torch.from_numpy(ndarr)


被折叠的 条评论
为什么被折叠?



