线性代数是机器学习中需要用到的重要数学工具之一,如何使用一门编程语言来处理线性代数是学习机器学习的基础之一。
所需环境
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)
矩阵基本运算
矩阵的转置
交换矩阵的行和列即得到矩阵的转置;也可以简单理解为围绕它的主对角线旋转矩阵
矩阵转置的转置是矩阵本身
矩阵转置举例:
矩阵的加法/减法
前提:待运算的两个矩阵有相同的维度
举例说明
标量乘以矩阵
矩阵中所有的元素都乘以标量