矩阵基本运算的 Python 实现

时间:2022-11-09 02:55:42

from...import与import区别在于import直接导入指定的库,而from....import则是从指定的库中导入指定的模块

import...as则是将import A as B,给予A库一个B的别称,帮助记忆

在机器学习中,对象是指含有一组特征的行向量。这个领域最出色的技术就是使用图形处理器的 GPU 运算,矢量化编程的一个重要特点就是可以直接将数学公式转换为相应的程序代码,维度是指在一定的前提下描述一个数学对象所需的参数个数,完整表述应为“对象X基于前提A是n维”。

scatter(x,y)和plot(x,y,'*')的效果一致就是根据x和y坐标绘制出所有点而已,

而plot默认是将所有点按一定的顺序连接成一条多段线当plot指定了线性时,就可以绘制不同的图像,比如plot(x,y,'*')

下面是一段测试程序:

# -*- coding: utf-8 -*-
# Filename : mytest1.py
import numpy as np # 导入 numpy库
from numpy import * # 导入 numpy库
import matplotlib.pyplot as plt # 导入 matplotlib 库
# 测试数据集-二维 list
dataSet = [[-0.017612,14.053064],[-1.395634 ,4.662541],[-0.752157
,6.538620],[-1.322371  ,7.152853],[0.423363  ,11.054677],[0.406704
,7.067335],[0.667394  ,12.741452], [-2.460150 ,6.866805],[0.569411
,9.548755],[-0.026632  ,10.427743],[0.850433  ,6.920334],[1.347183
,13.175500],[1.176813  ,3.167020],[-1.781871  ,9.097953]]
dataMat = mat(dataSet).T # 将数据集转换为 numpy矩阵,并转置
plt.scatter(dataMat[0],dataMat[1],c='red',marker='o') # 绘制数据集散点图
# 绘制直线图形
X = np.linspace(-2,2,100) # 产生直线数据集
# 建立线性方程
Y = 2.8*X+9
plt.plot(X,Y) # 绘制直线图
plt.show() # 显示绘制后的结果

输出结果如下:

矩阵基本运算的 Python 实现

理解数学公式与 Numpy

import numpy as np
myZero = np.zeros([3,5])
print myZero
print '\n'
myOnes = np.ones([3,5])
print myOnes
print '\n'
myRand = np.random.rand(3,4)
print myRand
print '\n'
myEye = eye(3)
print myEye

输出结果:

[[ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.]]

[[ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.]]

[[ 0.08391638  0.45111372  0.13425541  0.4058907 ]
 [ 0.4899189   0.09429184  0.49567921  0.05946378]
 [ 0.9062396   0.34326417  0.43128689  0.73593377]]

[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]