Numpy快速上手篇一
Jupyter Notebook 版可从百度云获取,稍后将上传至 Github。链接见评论区
导入依赖
import numpy as np
创建数组
指定内容的初始化
默认创建一维数组,大小为 1 × n 1 \times n 1×n
np.array([1,2,3])
得到数组
[
1
2
3
]
\begin{bmatrix} 1 \\ 2 \\ 3\end{bmatrix}
⎣⎡123⎦⎤
也可以使用其他方法初始化
初始化为全 1 1 1
np.ones(2)
得到数组
[
1
1
]
\begin{bmatrix} 1 \\ 1\end{bmatrix}
[11]
初始化为全 0 0 0
np.zeros(2)
得到向量
[
0
0
]
\begin{bmatrix} 0 \\ 0\end{bmatrix}
[00]
随机初始化
np.random.random(5)
向量的运算
依照线性代数的规则进行
向量与向量
同规格的向量才能相加
np.array([1,2,3]) + np.array([3,2,1])
[ 1 2 3 ] + [ 3 2 1 ] = [ 4 4 4 ] \begin{bmatrix} 1 \\ 2 \\ 3\end{bmatrix} + \begin{bmatrix} 3 \\ 2 \\ 1\end{bmatrix} = \begin{bmatrix} 4 \\ 4 \\ 4\end{bmatrix} ⎣⎡123⎦⎤+⎣⎡321⎦⎤=⎣⎡444⎦⎤
向量和数字
向量和标量的运算
np.ones(5) * 5
索引、切片和聚合
通过索引访问数组元素
vector = np.array([1,2,3,4,5])
vector[3:]
使用聚合对数组进行操作
使用 min
,max
,sum
,prod
(元素累乘),std
(标准差)等方法
vector = np.array([1,2,3,4,5,6])
vector.min()
vector.max()
vector.max()
vector.mean()
vector.prod()
vector.std()
多维向量、矩阵操作
创建多维矩阵
np.array([
[1,2,3],
[4,5,6],
[7,8,9]
])
通过传入对应的参数,向量适用的初始化方法对矩阵也有效。
注意传入的参整体要带上
(
)
()
()
np.ones((3,4))
矩阵运算
四则运算
即
+
,
−
,
×
,
÷
+,-,\times,\div
+,−,×,÷
注意此处矩阵乘法的定义
(
AB
)
i
j
=
∑
k
=
1
p
a
i
k
b
k
j
(\textbf {AB})_{ij} = \sum^p_{k=1}a_{ik}b_{kj}
(AB)ij=k=1∑paikbkj
除法的定义同理
(
A
÷
B
)
i
j
=
∑
k
=
1
p
a
i
k
÷
b
k
j
(\textbf {A} \div \textbf {B})_{ij} = \sum^p_{k=1}a_{ik}\div b_{kj}
(A÷B)ij=k=1∑paik÷bkj
点积运算
使用 dot()
实现点积运算
np.array([[1,2],
[3,4]]).dot(np.array([[1,2],
[3,4]]))
[ 1 2 3 4 ] ⋅ [ 1 2 3 4 ] = [ 7 10 15 22 ] \begin{bmatrix} 1 & 2 \\ 3 & 4\end{bmatrix} \cdot \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 7 & 10 \\ 15 & 22 \end{bmatrix} [1324]⋅[1324]=[7151022]
矩阵索引
矩阵的索引需要行、列两个参数
matrix = np.array([[1,2],
[3,4],
[5,6]])
m a t r i x = [ 1 2 3 4 5 6 ] matrix = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} matrix=⎣⎡135246⎦⎤
matrix[0,0]
得到 1 1 1
matrix[0:2]
得到矩阵
[
1
2
3
4
]
\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}
[1324]
matrix[1:3,1]
得到向量
[
4
6
]
\begin{bmatrix} 4 \\ 6 \end{bmatrix}
[46]
矩阵聚合
类似对向量的操作
矩阵运算
矩阵转置
matrix.T
[ 1 2 3 4 5 6 ] T = [ 1 2 3 4 5 6 ] \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix}^T = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} ⎣⎡135246⎦⎤T=[142536]
矩阵维度变化
将输入的数据转化为制定的维度
以行为顺序,依次将原矩阵中的元素“填充”到新矩阵形态中
matrix.reshape(3,2)