Numpy快速上手篇一

Numpy快速上手篇一

    • 导入依赖
    • 创建数组
      • 指定内容的初始化
      • 初始化为全 1 1 1
      • 初始化为全 0 0 0
      • 随机初始化
    • 向量的运算
      • 向量与向量
      • 向量和数字
    • 索引、切片和聚合
      • 通过索引访问数组元素
      • 使用聚合对数组进行操作
    • 多维向量、矩阵操作
      • 创建多维矩阵
      • 矩阵运算
        • 四则运算
      • 点积运算
      • 矩阵索引
      • 矩阵聚合
      • 矩阵运算
        • 矩阵转置
        • 矩阵维度变化

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:]

使用聚合对数组进行操作

使用 minmaxsumprod(元素累乘),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=1paikbkj
除法的定义同理
( 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=1paik÷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} 135246T=[142536]

矩阵维度变化

将输入的数据转化为制定的维度
以行为顺序,依次将原矩阵中的元素“填充”到新矩阵形态中

matrix.reshape(3,2)

你可能感兴趣的:(Numpy快速上手教程,线性代数,矩阵,python,机器学习)