1. 程式人生 > >機器學習(2.1)資料知識積累——向量

機器學習(2.1)資料知識積累——向量

向量

在數學中,幾何向量(也稱為歐幾里得向量,通常簡稱向量、向量),指具有大小(magnitude)和方向的量。 向量可以形象化地表示為帶箭頭的線段。箭頭所指:代表向量的方向;線段長度:代表向量的大小。 向量的記法:印刷體記作粗體的字母(如abuv),書寫時在字母頂上加一小箭頭→。[1]如果給定向量的起點(A)和終點(B),可將向量記作AB(並於頂上加→)。給空間設一直角座標系,也能把向量以數對形式表示,例如Oxy平面中(2,3)是一向量。 而在物理學和工程學中,幾何向量更常被稱為向量。許多物理量都是向量,比如一個物體的位移,球撞向牆而對其施加的等等。與之相對的是標量,即只有大小而沒有方向的量。一些與向量有關的定義亦與物理概念有密切的聯絡,例如向量勢對應於物理中的
勢能
。 幾何向量的概念在線性代數中經由抽象化,得到更一般的向量概念。此處向量定義為向量空間的元素,要注意這些抽象意義上的向量不一定以數對錶示,大小和方向的概念亦不一定適用。因此,平日閱讀時需按照語境來區分文中所說的"向量"是哪一種概念。不過,依然可以找出一個向量空間的基來設定座標系,也可以透過選取恰當的定義,在向量空間上介定範數內積,這允許我們把抽象意義上的向量類比為具體的幾何向量。 主要公式請參考參考

1、向量表達

下面先看如何表達向量

x=np.array([5,5])#可以看做是從0,0 點 到 5,5的向量
y=np.array([5,0])#可以看做是從0,0 點 到 5,0的向量
任意一個一維資料可以看做是原點到N維空間的一條向量如下面:
x1=np.array([5,5,5,10])
y2=np.array([5,0,25,0])
2、計算內積
print np.dot(x,y)#內積計算,如果是一維資料基本是距離的平方
print x.dot(y)#也可以寫成

3、計算模

求向量模,也叫向量長度,或者是從原點到目標的距離
print "------求向量模,也叫向量長度,或者是從原點到目標的距離--------"
print "x模長="+str(np.sqrt(x.dot(x)))
print "y模長="+str(np.sqrt(y.dot(y)))
4、通過以上我們可以求出夾角

根據向量公式:cosθ=向量a.向量b/|向量a|×|向量b| (注意是點乘)

cos_e=np.dot(x,y)/(np.sqrt(x.dot(x))*np.sqrt(y.dot(y)))
print "餘弦值="+str(cos_e)
angle_pi=np.arccos(cos_e)#弧度
angle_e=angle_pi*(180/np.pi)#角度
print angle_pi
print angle_e
輸出:

餘弦值=0.707106781187
0.785398163397
45.0