机器学习笔记--python使用numpy简单处理矩阵(二)

目录

矩阵乘法

单位矩阵

Python实现矩阵的乘法


矩阵乘法

使用前提:m\times l的矩阵乘以n\times m的矩阵得到n\times l的矩阵。

假设 \mathbf{A}_{m \times l} 矩阵中的每一项元素为\begin{pmatrix} a_{1,1},a_{1,2},a_{1,3}, ... ,a_{1,l}\\ a_{2,1},a_{2,2},a_{2,3},...,a_{2,l} \\ ...\\ a_{m,1},a_{m,2},a_{m,3},...,a_{m,l}\\ \end{pmatrix}

假设 \mathbf{B}_{n\times m} 矩阵中的每一项元素为\begin{pmatrix} b_{1,1},b_{1,2},b_{1,3},...,b_{1,m}\\ b_{2,1},b_{2,2},b_{2,3},...,b_{2,m}\\ ...\\ b_{n,1},b_{n,2},b_{n,3},...,b_{n,m} \end{pmatrix}

那么 \mathbf{A}\mathbf{B} 的计算方法为\begin{pmatrix} a_{1,1}\cdot b_{1,1}+a_{1,2}\cdot b_{2,1}+...+ a_{1,l}\cdot b_{n,1},\quad a_{1,1}\cdot b_{1,2}+a_{1,2}\cdot b_{2,2}+...+ a_{1,l}\cdot b_{n,2},\quad ..., \quad a_{1,1}\cdot b_{1,m}+a_{1,2}\cdot b_{2,m}+...+ a_{1,l}\cdot b_{n,m}\\ a_{2,1}\cdot b_{1,1}+a_{2,2}\cdot b_{2,1}+...+ a_{2,l}\cdot b_{n,1},\quad a_{2,1}\cdot b_{1,2}+a_{2,2}\cdot b_{2,2}+...+ a_{2,l}\cdot b_{n,2},\quad ..., \quad a_{2,1}\cdot b_{1,m}+a_{2,2}\cdot b_{2,m}+...+ a_{2,l}\cdot b_{n,m}\\ ...\qquad ... \qquad ...\\ a_{m,1}\cdot b_{1,1}+a_{m,2}\cdot b_{2,1}+...+ a_{m,l}\cdot b_{n,1},\quad a_{m,1}\cdot b_{1,2}+a_{m,2}\cdot b_{2,2}+...+ a_{m,l}\cdot b_{n,2},\quad ..., \quad a_{m,1}\cdot b_{1,m}+a_{m,2}\cdot b_{2,m}+...+ a_{m,l}\cdot b_{n,m}\\ \end{pmatrix}

举个例子:

\mathbf{A}=\begin{pmatrix} 1\quad 2\quad 3\quad 4\\ 2\quad 0\quad 5\quad 7\\ 3\quad 6\quad 0\quad 0 \end{pmatrix}    \mathbf{B}=\begin{pmatrix} 2\quad 3\\ 0\quad 1\\ 4\quad 5\\ 6\quad 2 \end{pmatrix}

则有:

\mathbf{A B} = \begin{pmatrix} 1\times 2+2 \times 0 + 3 \times 4 + 4\times6=38 \quad 1\times3+2\times1+3\times5+4\times2=28\\ 2\times2+0\times0+5\times4+7\times6=66\quad 2\times3+0\times1+5\times5+7\times2=45\\ 3\times2+6\times0+0\times4+0\times6=6\quad 3\times3+6\times1+0\times5+0\times2=15 \end{pmatrix}

矩阵的乘法不总是可以交换的,但是向量的点积是可交换的

单位矩阵

定义:单位矩阵对角线上的元素都为1,其余都是零。矩阵B乘以单位矩阵得到B矩阵。

以下所示是一个四阶单位矩阵

 \mathbf{E}=\begin{pmatrix} 1 \quad 0\quad 0\quad 0\\ 0\quad 1\quad 0\quad 0\\ 0\quad 0\quad 1\quad 0\\ 0\quad 0\quad 0\quad 1 \end{pmatrix}

Python实现矩阵的乘法

上一篇笔记记录了如何用python的numpy创建矩阵,忘记的请戳使用python的numpy进行简单的矩阵处理,这里将介绍如何使用numpy进行矩阵的相乘

Cosette:~ cosetteqi$ 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=np.array([[1,2,3,4],[2,0,5,7],[3,6,0,0]])
>>> print A
[[1 2 3 4]
 [2 0 5 7]
 [3 6 0 0]]
>>> B=np.array([[2,3],[0,1],[4,5],[6,2]])
>>> print B
[[2 3]
 [0 1]
 [4 5]
 [6 2]]
>>> C=A.dot(B)
>>> print C
[[38 28]
 [66 45]
 [ 6 15]]
>>>

如上所示,先创建了矩阵A和矩阵B,要计算他们的乘积直接调用  .dot() 方法即可。

 

你可能感兴趣的:(学习笔记,python学习,大数据,cloud)