码迷,mamicode.com
首页 > 编程语言 > 详细

Python机器学习之NumPy函数库

时间:2015-03-03 22:05:40      阅读:565      评论:0      收藏:0      [点我收藏+]

标签:

NumPy函数库是Python开发环境的一个独立模块,而且大多数Python发行版没有默认安装NumPy函数库,因此在安装Python之后必须单独安装NumPy函数库。

在Python shell开发环境中输入下列命令:

>>> from numpy import * 

如果没报错就表明NumPy函数库正确安装。

上述命令将NumPy函数库中的所有模块引入当前的命名空间。

然后在Python shell开发环境中输入下述命令:

>>> random.rand(4,4)

array([[ 0.14934315,  0.1449608 ,  0.10937618,  0.11962542],
[ 0.04143021, 0.16427192, 0.42890596, 0.2950785 ],
[ 0.63548394, 0.89104911, 0.19498788, 0.35677273],
[ 0.3508607 , 0.52253214, 0.75657235, 0.43606179]])

上述命令构造了一个4*4的随机数组。

调用mat()函数可以讲数组转化为矩阵,输入下述命令:

>>> randMat = mat(random.rand(4,4))

由于使用随机函数产生矩阵,不同计算机上输出的值可能略有不同:

>>> randMat.I

matrix([[ 4.56615396, -5.06383533, -0.95580269,  1.77517599],
[ 3.52460325, -1.68264237, -3.10410481, 0.68144572],
[ 4.49946852, 0.68792194, -2.99607457, -3.35777914],
[-5.49861973, 3.25167152, 3.96853985, 0.35681462]])

.I操作符实现了矩阵求逆的运算,执行下面的命令存储逆矩阵:

invRandMat = randMat.I

接着执行矩阵乘法,得到矩阵与其逆矩阵相乘的结果:

>>> randMat*invRandMat

matrix([[  1.00000000e+00,  -4.44089210e-16,  -4.44089210e-16,
-3.33066907e-16],
[ -8.88178420e-16, 1.00000000e+00, 0.00000000e+00,
5.55111512e-17],
[ 4.44089210e-16, 0.00000000e+00, 1.00000000e+00,
-5.55111512e-17],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
1.00000000e+00]])

结果应该是单位矩阵,除了对角线元素师1,4*4矩阵的其他元素应该全是0.实际输出结果略有不同,矩阵里还留下了许多非常小的元素,这是计算机处理误差产生的结果.输入下述命令,得到误差值:

>>> myEye = randMat*invRandMat
>>> myEye - eye(4)

matrix([[  0.00000000e+00,  -4.44089210e-16,  -4.44089210e-16,
-3.33066907e-16],
[ -8.88178420e-16, 2.22044605e-16, 0.00000000e+00,
5.55111512e-17],
[ 4.44089210e-16, 0.00000000e+00, 0.00000000e+00,
-5.55111512e-17],
[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00]])

函数eye(4)创建4*4 的单位矩阵。

只要能够顺利的完成上述例子,就说明已经正确的安装了NumPy函数库,以后就可以利用它构造机器学习的应用程序。

Python机器学习之NumPy函数库

标签:

原文地址:http://www.cnblogs.com/pylab/p/4311927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!