机器学习组件
abel的Python项目详细描述
矢量
fromabel.linalg.vectorimportVectora,b=Vector([1,2]),Vector([3,4])c,d=Vector([1,2,3]),Vector([4,5,6])asserta.shape==b.shape==(1,2)assertc.shape==d.shape==(1,3)
添加
asserta+a==Vector([2,4])asserta+b==Vector([4,6])assertb+b==Vector([6,8])
减法
asserta-b==Vector([-2,-2])assertb-a==Vector([2,2])
缩放
asserta*5==Vector([5,10])assert5*a==Vector([5,10])asserta/2==Vector([0.5,1.0])
点(内)积
asserta@b==11asserta@a==5
标准(长度)
asserta.norm()-2.236<0.001assertb.norm()-5<0.001
角度
assertVector.angle(a,a)<0.001assertVector.angle(a,b)-0.1799<0.001assertVector.angle(a,b)==Vector.angle(b,a)
矢量投影
assertVector.proj(a,a)==aassertVector.proj(a,b)==Vector([1.32,1.76])assertVector.proj(b,a)==Vector([2.2,4.4])
标量投影
assertVector.scalproj(a,b)-4.919<0.01assertVector.scalproj(b,a)-2.2<0.01assertVector.scalproj(a,a)-2.236<0.01assertVector.scalproj(b,b)-5<0.1
交叉积
assertVector.cross(c,d)==Vector([-3,6,-3])
平均值(算术平均值)
assertVector.average(Vector([2,1]),Vector([4,2]))==Vector([3.0,1.5])
共线性
向量是共线的,只要一个是另一个的标量倍数。
assertVector.collinear(Vector([2,1]),Vector([4,2]))assertVector.collinear(Vector([-3,4,1]),Vector([-15,20,5]))assertnotVector.collinear(Vector([0,1]),Vector([1,0]))
线性独立性
一组向量是线性无关的,只要其中的所有向量是成对非共线的。
assertVector.linindep(Vector([0,1]),Vector([1,0]))assertVector.linindep(Vector([1,1]),Vector([2,1]))assertnotVector.linindep(Vector([1,2,3]),Vector([0,0,1]),Vector([0,0,2]))