numpy 数组的体会

今天看机器学习实战的程序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,不懂的还很多,写点东西记录一下学习的所得。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值