机器学习数学基础之Python矩阵运算
1.在Jupyter中写下Python矩阵基本运算学习记录
1.1 python矩阵操作
1.1.1 首先打开jupyter,引入numpy
1.1.2 创建一个矩阵a并调用
a=np.mat([[1,2,3,],[4,5,6]])
a
1.1.3 使用 shape可以获得矩阵大小
1.1.4 使用下标读取矩阵中元素
1.1.5 进行行列转换
1.1.6 使用二维数组代替矩阵进行矩阵运算
1.1.7 矩阵加减法
1.1.8 加减失误案例
个人猜测没有添加arrary或者mat,导致程序认为只是一个正常的数组结合
1.1.9 成功案例
1.2 python矩阵乘法
1.2.1 使用二维数组创建两个矩阵A和B
A=np.mat([[1,2,3],[4,5,6]])
B=np.mat([[1,4],[2,5],[3,6]])
1.2.2 矩阵数乘,见识矩阵每一个元素乘以该数
1.2.3 dot函数
矩阵要求如下
- 设A为m×p的矩阵,B为p×n的矩阵,那么称m*n的矩阵C为矩阵A与B的乘积
- 只有在第一个矩阵的
列数C
和第二个矩阵的行数R
相同时才有意义
dot函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积。注意交换矩阵的前后位置会导致不同的结果
1.2.4 创建一个二维数组C
C=np.mat([[1,2],[1,3]])
C
1.2.5 验证矩阵乘法的结合性 (AB)C=A(BC)
np.dot(np.dot(A,B),C)
np.dot(A,np.dot(B,C))
合理
1.2.6 验证加法分配性 (A+B)C=AC+BC,C(A+B)=CA+CB
D=B-1
D
np.dot(A,B+D)
np.dot(A,B)+np.dot(A,D) #记得分步写
合理
1.2.7 数乘的结合性
主要对比以下三组代码的值
2*np.dot(A,B)
np.dot(A,2*B)
np.dot(2*A,B)
很合理
1.2.8 eye
np.eye(n)能够直接创建n阶单位矩阵
1.2.9 矩阵A乘以一个单位矩阵
np.dot(A,I)
很明显,仍然是本身
1.3 python矩阵转置
矩阵的转置很简单,就是将矩阵的行变为列,将列变为行.
1.3.1 (A’)’=A
顺便验证了一下A的转置的转置为本身