numpy 数组的体会

来源:互联网 发布:pc机安装mac 编辑:程序博客网 时间:2024/05/29 13:39

今天看机器学习实战的程序2-3,发现了minVals=dataSet.min(0);  以及maxVals=dataSet.max(0)这两行代码。于是自己写了一个矩阵想来试试这两句代码的具体作用,可是最后报错了。



上网一查,不但发现了这两句代码的作用,也发现了自己写的代码的问题。


首先,minVals=dataSet.min(0); 的作用是:对于dataSet这个矩阵返回每一列的最小值,可想而知,返回的应该是一个一维的列表。同时不难想到,maxVals=dataSet.min(0);返回的就是每一列当中最大的数值所构成的移位列表。


其次,我所写的代码的问题出在:min(0)这个函数是numpy 下数组的函数。而我当时写的是二维列表,而不是numpy下的数组,所以出了问题。


再次,我通过查阅资料得出了两种改正方法:

(1)



这是采用了numpy的数组,并且直接对其初始化后调用min(0),ok!

(2)



第二种方法就是利用(zeros)函数建一个空的矩阵,然后逐行赋值(不可以直接用二维列表对arr赋值,那样的话arr就还是二维列表,依旧不能够调用min),最后调用以下min,ok!


主要是机器学习实战的作者调用了

from numpy import *

使得初学者有事想当然得用一些函数和方法,比如(np.zeros).

跟着《机器学习实战》初学机器学习和python,不懂的还很多,写点东西记录一下学习的所得。


0 0