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⎦⎤
也可以使用其他方法初始化
np.ones(2)
得到数组
[ 1 1 ] \begin{bmatrix} 1 \\ 1\end{bmatrix} [11]
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)