错误原因是因为numpy数组中存在不同类型的数据,如果后来想把数据统一设为比如
int32
,int64
,float32
等类型是就出现这个异常错误
例子,我本来以为我的数据是
train_vector_X = [[ 9.00000000e+00 5.00000000e+00 0.00000000e+00 1.32000000e+02 1.00000000e+00 2.00000000e+01 1.93000000e+02 4.00000000e+00 2.00000000e+00 2.00000000e+00 9.00000000e+00 4.10000000e+01 5.33699729e-02 3.95190626e-01 4.64685917e-01 -1.11193947e-01]]
但由于我合并数组出错,实际我得到的数据是
train_vector_X = [[ 9.00000000e+00 5.00000000e+00 0.00000000e+00 1.32000000e+02 1.00000000e+00 2.00000000e+01 1.93000000e+02 4.00000000e+00 array([ 2.00000000e+00 2.00000000e+00 9.00000000e+00 4.10000000e+01 5.33699729e-02 3.95190626e-01 4.64685917e-01 -1.11193947e-01],dtype=float32)]
每条数据包括了一个数组 , 这样在使用train_vector_X.astype(‘float32’)的类型转换操作时就出错了。
总的来说,numpy在使用类型转换时,要统一最里面一维的数据格式,如果包含数值和数组,或者字符串等不同类型的数据,就会报异常。