線性代數是機器學習中需要用到的重要數學工具之一,如何使用一門編程語言來處理線性代數是學習機器學習的基礎之一。
所需環境
python 2.7或3.6
site-package numpy
線性代數是本科期間工科專業的基礎必修課,關於基礎知識想必大家差距都不大,這裏只做簡單的回憶。
線性代數基礎知識
標量:一個數字 5
向量:一維數字數組,其中每個元素由單個索引標識
行向量 [2 3 -7]
列向量
矩陣:m行*n列的數組成爲m維矩陣
以下爲2行*3列的二維矩陣
使用python創建矩陣:
Python 2.7.10 (default, Aug 17 2018, 17:41:52)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
> #創建一個向量
>>> a = 24
> #創建一個1行3列的矩陣(行向量)
>>> b = np.array([[2,-8,7]])
> #創建一個3行1列的矩陣(列向量)
>>> c = np.array([[-6],[-4],[27]])
> #創建一個3行2列的二維矩陣
>>> d = np.array([6,4,24],[1,-9,8])
>>>
>>> print a
24
>>>
>>> print b
[[ 2 -8 7]]
>>>
>>> print c
[[-6]
[-4]
[27]]
>>>
>>> print d
[[ 6 4 24]
[ 1 -9 8]]
> #查看矩陣的形狀
>>> d.shape
(2, 3)
矩陣基本運算
矩陣的轉置
交換矩陣的行和列即得到矩陣的轉置;也可以簡單理解爲圍繞它的主對角線旋轉矩陣
矩陣轉置的轉置是矩陣本身
矩陣轉置舉例:
矩陣的加法/減法
前提:待運算的兩個矩陣有相同的維度
舉例說明
標量乘以矩陣
矩陣中所有的元素都乘以標量