向量定义

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(1)

向量的模

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(2)

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(3)

向量的点乘(内积)

v = np.array([2,1]) s = np.array([-3,2]) d = np.dot(v,s) # 方法名是 dot print(d) print(v @ s) # 或者直接用 @ 操作符

向量的点乘具体意义

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(4)

v = np.array([2,1]) s = np.array([-3,2]) vMag = np.linalg.norm(v) # 计算标量 sMag = np.linalg.norm(s) cos = (v @ s) / (vMag * sMag) # 点乘除标量积是余弦 theta = math.degrees(math.acos(cos))

矩阵

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(5)

单位矩阵线性变换

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(6)

可见变换T是一个从二维实数向量向另一个二维实数向量的变换,输出向量的维度可以和原向量不同。

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(7)

import matplotlib.pyplot as plt %matplotlib inline v = np.array([1,0]) A = np.array([[0,-1], [1,0]]) t = A@v vecs = np.array([v,t]) origin = [0], [0] plt.axis('equal') plt.grid() plt.ticklabel_format(style='sci', axis='both', scilimits=(0,0)) plt.quiver(*origin, vecs[:,0], vecs[:,1], color=['orange', 'blue'], scale=10) plt.show()

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(8)

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(9)

cos, sin, pi = math.cos, math.sin, math.pi def rotate(a): return np.array([[cos(a), -sin(a)], [sin(a),cos(a)]]) v = np.array([1,0]) alpha = pi/5 # 旋转36° beta = pi/4 # 旋转45° gamma = pi/3 # 旋转60° vecs = np.array([v, *[rotate(a)@v for a in [alpha, beta, gamma]]]) origin = [0], [0] plt.axis('equal') plt.grid() plt.ticklabel_format(style='sci', axis='both', scilimits=(0,0)) plt.quiver(*origin, vecs[:,0], vecs[:,1], color=['r', 'b', 'm', 'g'], scale=10) plt.show()

矩阵与多维向量的区别(深入了解矩阵和向量的实际意义)(10)

总结

原文地址:https://github.com/microsoft/ai-edu/blob/master/A-基础教程/A1-PythonBasic/math_intro/03_线性代数.ipynb。

看完这篇文章,我更加理解了向量和矩阵相乘的实际意义。

最后希望大家多多评论、关注、点赞、转发,你们的支持,是我更新下去的最大动力。

,