该博客为本人自学自编的笔记,主要介绍了Numpy部分用处,这是第一篇Numpy文章
Numpy库的简介
Numpy是一个强大的Python库,用于进行科学计算,它可以处理矩阵和很多数据。
- 多维数组对象:在Numpy中,最核心的部分就是它的多维数组对象,或者叫做ndarray。这个数组允许你存储同类型的数据集合,可以是一维(比如一行数字)、二维(比如一个表格或矩阵)、甚至是更高维度的数据结构。使用这种结构,我们可以非常高效地进行数学和逻辑运算。
- 处理工具:Numpy不仅提供了多维数组对象,还提供了大量的函数和操作,可以很方便地进行数学计算、数组操作(比如切片、索引、迭代)、线性代数运算、随机数生成等等。使得Numpy成为了科学计算、数据分析、机器学习等领域不可或缺的工具。
如果你打算在Python中进行任何形式的科学计算或数据分析,学习Numpy几乎是必须的一步。
创建矩阵
通过已有的列表,建立一个多维数组
import numpy as np
#根据两组列表,创建一个二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])
在这个代码中,根据两组列表,通过 np.array() 函数将他们创建成了一个二维数组。
[123456]
\begin{bmatrix}
1 & 2 &3\\
4 & 5 &6\\
\end{bmatrix}
[142536]
此外,只要是能够有序列表示的类型,都可以通过这个函数创建多维数组,元组同样可以用于创建多维数组。
直接创建数组
创建全0矩阵
import numpy as np
#创建一个3*3全为0的矩阵
zeros_matrix = np.zeros((3, 3))
在这个代码中,通过 np.zeros() 函数,创建了一个长宽均为3的全0矩阵。
[000000000]
\begin{bmatrix}
0 & 0 &0\\
0& 0 &0\\
0&0&0\\
\end{bmatrix}
000000000
创建全1矩阵
import numpy as np
#创建一个3*3全为1的矩阵
ones_matrix = np.ones((3, 3))
在这个代码中,通过 np.zeros() 函数,创建了一个长宽均为3的全0矩阵。
[111111111]
\begin{bmatrix}
1 & 1 &1\\
1& 1 &1\\
1&1&1\\
\end{bmatrix}
111111111
创建对角线为1的矩阵
import numpy as np
#创建一个3*3的单位矩阵
identity_matrix = np.eye(3)
在这个代码中,通过 np.eye() 函数,创建了3*3对角线全为1的单位矩阵
[100010001]
\begin{bmatrix}
1 & 0 &0\\
0& 1 &0\\
0&0&1\\
\end{bmatrix}
100010001
矩阵的加减乘除
矩阵的加减
进行矩阵的加减前提是两个矩阵拥有相同的维度,加减就是将矩阵中对应的数字进行加减。我们直接用 + - 号即可将他们加减。
import numpy as np
#我们用字母代替,以便更好的展示
A = np.array([[a, b], [c, d]])
B = np.array([[e, f], [g, h]])
C = A + B
D = A - B
此时C的结果应该是
C=[a+eb+fc+gd+h]
C=\begin{bmatrix}
a+e & b+f\\
c+g& d+h \\
\end{bmatrix}
C=[a+ec+gb+fd+h]
D的结果
D=[a−eb−fc−gd−h]
D=\begin{bmatrix}
a-e & b-f\\
c-g& d-h \\
\end{bmatrix}
D=[a−ec−gb−fd−h]
如果想让矩阵都加减某一个数,直接使用**+ -** 号那个数即可
A = np.array([[a, b], [c, d]])
C = A+1
C=[a+1b+1c+1d+1] C=\begin{bmatrix} a+1 & b+1\\ c+1& d+1 \\ \end{bmatrix} C=[a+1c+1b+1d+1]
矩阵的乘除
乘法
矩阵的乘除并不是加减一样简单,他的计算规则是这样的。
A=[abcd]B=[efgh]
A=\begin{bmatrix}
a & b\\
c& d \\
\end
{bmatrix}
B=\begin{bmatrix}
e & f\\
g& h \\
\end
{bmatrix}
A=[acbd]B=[egfh]
那么A×B就是这样的
A×B=(ae+bgaf+bhce+dgcf+dh)
\mathbf{A} \times \mathbf{B} =
\begin{pmatrix}
ae + bg & af + bh \\
ce + dg & cf + dh
\end{pmatrix}
A×B=(ae+bgce+dgaf+bhcf+dh)
使用的函数是
import numpy as np
A = np.array([[a, b], [c, d]])
B = np.array([[e, f], [g, h]])
A × B = np.dot(A,B)
除法
对于矩阵,并不存在“正常”的除法,除以一个矩阵就是乘上它的逆矩阵
A×A−1=I单位矩阵
A ×A^{-1}= I_{单位矩阵}
A×A−1=I单位矩阵
在Python中,逆矩阵的函数为
A_inv = np.linalg.inv(A)
此时除以A就等价于乘上A_inv
B ➗ A = np.dot(B, np.linalg.inv(A))
乘除一个数
和加减一样,只需要使用 * / 符号即可
A = np.array([[a, b], [c, d]])
D = A * 2
D=[a∗2b∗2c∗2d∗2] D=\begin{bmatrix} a*2 & b*2\\ c*2& d*2 \\ \end{bmatrix} D=[a∗2c∗2b∗2d∗2]
此外,不止是加减乘除,平方、判断大小等等都可以直接用在矩阵上。
1096





