进入Python Numpy 开发环境
- 进入开发环境,导入函数库。
python
>>> from numpy import *
>>>
- 构造随机4*4的数组。
>>> random.rand(4,4)
array([[0.768388 , 0.25985153, 0.22463279, 0.15207017],
[0.54974659, 0.66975723, 0.43260259, 0.16968662],
[0.99561439, 0.19247713, 0.06272048, 0.02427845],
[0.37828522, 0.07717839, 0.82606638, 0.62284816]])
- 调用
mat()
函数可以将数组转化为矩阵:
randMat = mat(random.rand(4,4))
.I
操作符实现了矩阵求逆的运算:
>>> randMat.I
matrix([[ 1.82854954, 6.18721531, -1.23217589, -6.21081253],
[-2.77985587, -6.95624578, 3.20273141, 6.39917325],
[ 3.59647331, 4.48562014, -2.46083948, -4.08390475],
[-5.94615554, -9.97699439, 3.74538554, 11.04422169]])
- 执行矩阵的乘法运算,得到矩阵与其逆矩阵相乘的结果:
>>> invRandMat = randMat.I
>>> randMat*invRandMat
matrix([[ 1.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00],
[ 8.8817842e-16, 1.0000000e+00, 0.0000000e+00, 0.0000000e+00],
[-4.4408921e-16, 0.0000000e+00, 1.0000000e+00, 0.0000000e+00],
[ 0.0000000e+00, 8.8817842e-16, 0.0000000e+00, 1.0000000e+00]])
结果应该是单位矩阵,除了对角线是1,其他都应该是0,但是实际运算中存在误差。
eye(4)
函数可以创建一个4*4的单位矩阵。用计算后的矩阵减去单位矩阵,计算误差:
myEye = randMat*invRandMat
>>> myEye - eye(4)
matrix([[ 2.22044605e-16, 0.00000000e+00, 0.00000000e+00,
0.00000000e+00],
[ 8.88178420e-16, 1.77635684e-15, 0.00000000e+00,
0.00000000e+00],
[-4.44089210e-16, 0.00000000e+00, 4.44089210e-16,
0.00000000e+00],
[ 0.00000000e+00, 8.88178420e-16, 0.00000000e+00,
-8.88178420e-16]])