问题的起源是在调用稀疏矩阵计算SVD时候,提示我输入的矩阵类型不对。

Sparse Matrix: ValueError: matrix type must be 'f', 'd', 'F', or 'D'

所以尝试对输入的数据矩阵进行类型转换,首先是ndarray是从dataframe过来的。dtype('int64')

简单查了一下 

使用 ndarray.dtype = '数据类型'  eg:   datandarray.dtype = 'float64' 这种强制变换 是会影响数据的

显然从一个浮点数变换到整型的时候,会出现的问题。

另一个强制转换出现的问题就是:

从一个64的变换到16位的,一个数会被切成4个数,所以原来数组的3个被切成了12个。

 

正确的ndarray数组变换姿势:

其中需要注意的是:!!!

test.astype转换后还需要重新赋值替换掉原来的,否则test的类型并不会改变。

 

posted on 2018-11-11 11:08  Mereder  阅读(532)  评论(0编辑  收藏  举报