list里面存放的是字符串形式的数字,转为float的可运算数字的数组assay,矩阵matrix
首先有一个list如下
data = ['0.8217698560600115', '0.020526409993814658', '0.0008932543433348743', '0.004280856398492861', '0.016243199480966055', '-0.005934143252733641', '0.004167918722734331']
,看到这里,头皮发麻,里面全是字符形式的,接下来调用numpy里面的assay 。
import numpy as np
data_assay = np.assay(data,dtype = float)
#用np.asassay(data,dtype = float)效果是一样的,差别在当数据源是ndarray时,assay会复制一个,占用内存,但是asassay不会复制,
print(data_assay)
打印出来的结果如下:
[ 8.21769856e-01 2.05264100e-02 8.93254343e-04 4.28085640e-03
1.62431995e-02 -5.93414325e-03 4.16791872e-03 ]
可以看到里面的字符串都改成float,执行下面代码,看看是否是我们需要转成的行矩阵:
print(data_assay.shape)
现实很残酷,输出如下:
(7,)
没有显示(1,7),这其实不算一个真正的矩阵,而是一个包含7个元素的数组。
所以这是将我们的list转换成了数组,但是机器学习都是用矩阵做运算的,接下来我们尝试将list转换成矩阵
data_mat = np.matrix(data,dtype=float)
print(data_mat)
print(data_mat.shape)
结果现实如下:
[ [8.21769856e-01 2.05264100e-02 8.93254343e-04 4.28085640e-03
1.62431995e-02 -5.93414325e-03 4.16791872e-03 ] ]
(1,7)
这才是一个真正的矩阵,虽然显示的时候和上面数组assay一样,但是查看其shape时可以很清晰看到差别。