python——Numpy函数库基础

构成一个4X4的随机数组

>>> from numpy import *
>>> random.rand(4,4)
array([[ 0.64739371,  0.58006968,  0.53814822,  0.95993873],
       [ 0.39470874,  0.68392526,  0.397054  ,  0.83557031],
       [ 0.39251183,  0.18655464,  0.54314147,  0.80914483],
       [ 0.67786307,  0.60178295,  0.12575287,  0.93371132]])
>>>

NumPy矩阵与数组的区别
NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素。虽然它们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果,其中Numpy函数库中的matrix与MATLAB中matrices等价。

调用mat()函数可以将数组转化为矩阵:

>>> randMat=mat(random.rand(4,4))
>>> randMat.I
matrix([[  4.30396488e-02,   8.53829248e-01,   8.52008572e-01,
          -1.64503665e+00],
        [  8.70389017e-01,   5.00807467e-01,  -1.12177378e+00,
           4.33989407e-01],
        [  4.55273551e-01,  -8.01367450e-01,   8.91059570e-01,
          -1.24397320e-03],
        [ -1.22686498e+00,  -1.03491701e-01,   5.96470687e-02,
           1.46893235e+00]])

.I操作实现了矩阵求逆的运算。

矩阵与逆矩阵相乘

>>> invRandMat=randMat.I
>>> randMat*invRandMat
matrix([[  1.00000000e+00,   7.42133465e-17,  -9.76185381e-17,
          -3.56544374e-17],
        [  2.80528862e-17,   1.00000000e+00,   8.65675301e-17,
          -8.69098918e-17],
        [  1.85128364e-16,  -1.36699179e-16,   1.00000000e+00,
          -3.31196933e-17],
        [  3.61944405e-17,   4.68364837e-17,  -6.28964878e-17,
           1.00000000e+00]])

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

>>> myEye=randMat*invRandMat
>>> myEye-eye(4)
matrix([[  2.22044605e-16,   7.42133465e-17,  -9.76185381e-17,
          -3.56544374e-17],
        [  2.80528862e-17,  -3.33066907e-16,   8.65675301e-17,
          -8.69098918e-17],
        [  1.85128364e-16,  -1.36699179e-16,   2.22044605e-16,
          -3.31196933e-17],
        [  3.61944405e-17,   4.68364837e-17,  -6.28964878e-17,
          -2.22044605e-16]])

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐亦亦乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值