• numpy模块的基本使用


    基础相关

    narray数组创建

    方法 描述
    array() 将列表转换为数组,可选择显式指定dtype
    arange() range的numpy版,支持浮点数
    linspace() 类似arange(),第三个参数为数组长度
    zeros() 根据指定形状和dtype创建全0数组
    ones() 根据指定形状和dtype创建全1数组
    empty() 根据指定形状和dtype创建空数组(随机值)
    eye() 根据指定边长和dtype创建单位矩阵

    常用的属性

    属性 描述
    T 数组的转置(对高维数组而言)
    dtype 数组元素的数据类型
    size 数组元素的个数
    ndim 数组的维数
    shape 数组的维度大小(以元组形式)
    itemsize 每个项占用的字节数
    nbytes 数组中的所有数据消耗掉的字节数

    数据类型(dtype)

    类型 描述
    布尔型 bool_
    整型 int_ int8 int16 int32 int 64
    无符号整型 uint8 uint16 uint32 uint64
    浮点型 float_ float16 float32 float64

    进阶知识

    range与arange

    共同点

    ​ 都有start,end(不顾尾),step三个参数

    不同点

    ​ arange返回的是一个ndarray(N维数组)

    ​ range返回的是一个list

    ​ arange允许步长为小数,range只支持整数

    In [24]:

    range(2,8,2)
    

    Out[24]:

    range(2, 8, 2)
    

    In [26]:

    np.arange(2,8,2)
    

    Out[26]:

    array([2, 4, 6])
    

    向量化数学运算

    *参考矩阵运算

    数组与标量运算

    直接做加减乘除即可,略

    数组运算(shape必须相同)

    索引与切片

    索引

    *一维数组的索引与列表没有区别,接下来主要针对多维数组.

    数组重塑(reshape)

    In [41]:

    a4=np.random.randint(0,3,size=(2,3))
    a4
    

    Out[41]:

    array([[1, 0, 2],
           [1, 1, 2]])
    

    In [44]:

    a4.reshape(1,6)
    

    Out[44]:

    array([[1, 0, 2, 1, 1, 2]])
    

    In [45]:

    a4.reshape(1,-1) #-1相当于占位符,系统会自动算出
    

    Out[45]:

    array([[1, 0, 2, 1, 1, 2]])
    

    In [46]:

    a4.reshape(1,-1).reshape(2,-1)
    

    Out[46]:

    array([[1, 0, 2],
           [1, 1, 2]])
    

    切片

    In [116]:

    a4
    

    Out[116]:

    array([[1, 0, 2],
           [1, 1, 2]])
    

    In [117]:

    a4[:,1:2]
    

    Out[117]:

    array([[0],
           [1]])
    

    In [118]:

    a4[0:1]
    

    Out[118]:

    array([[1, 0, 2]])
    

    数组的行互换

    In [120]:

    a=np.array([[1,2,3],[4,5,6]])
    a=a[::-1,:]
    a
    

    Out[120]:

    array([[4, 5, 6],
           [1, 2, 3]])
    

    布尔型索引

    In [129]:

    c=np.eye(5,dtype=int).reshape(5,-1)
    c
    

    Out[129]:

    array([[1, 0, 0, 0, 0],
           [0, 1, 0, 0, 0],
           [0, 0, 1, 0, 0],
           [0, 0, 0, 1, 0],
           [0, 0, 0, 0, 1]])
    

    In [131]:

    c==1
    

    Out[131]:

    array([[ True, False, False, False, False],
           [False,  True, False, False, False],
           [False, False,  True, False, False],
           [False, False, False,  True, False],
           [False, False, False, False,  True]])
    

    *花式索引

    In [131]:

    b=np.arange(32).reshape((8,4))
    b
    
    

    Out[131]:

    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11],
           [12, 13, 14, 15],
           [16, 17, 18, 19],
           [20, 21, 22, 23],
           [24, 25, 26, 27],
           [28, 29, 30, 31]])
    
    

    In [132]:

    b[[1,3,5,7],[1,2,1,2]] 
    #取出索引1,3,5,7行,在索引为1的行中取出索引为1的列,在索引为3的行中取出索引为2的列,在索引为5的行中取出#索引为1的列,在索引为7的行中取出索引为2的列
    
    

    Out[132]:

    array([ 5, 14, 21, 30])
    
    

    数组转置以及轴对换

    数组转置(返回的是视图,而非源)

    arr.transpose()或者arr.T
    对于高维数组,transpose需要得到一个由轴编号组成的元组(有点烧脑)

    轴对换(返回的是视图,而非源)

    swapaes(),需要接受轴编号

    通用函数

    一元函数

    函数 功能
    abs、fabs 分别是计算整数和浮点数的绝对值
    sqrt 计算各元素的平方根
    square 计算各元素的平方
    exp 计算各元素的指数e**x
    log 计算自然对数
    sign 计算各元素的正负号
    ceil 计算各元素的ceiling值
    floor 计算各元素floor值,即小于等于该值的最大整数
    rint 计算各元素的值四舍五入到最接近的整数,保留dtype
    modf 将数组的小数部分和整数部分以两个独立数组的形式返回,与Python的divmod方法类似
    isnan 判断数组中的缺失值
    isinf 表示那些元素是无穷的布尔型数组
    cos,sin,tan 普通型和双曲型三角函数

    二元函数

    函数 功能
    add 将数组中对应的元素相加
    subtract 从第一个数组中减去第二个数组中的元素
    multiply 数组元素相乘
    divide、floor_divide 除法或向下圆整除法(舍弃余数)
    power 对第一个数组中的元素A,根据第二个数组中的相应元素B计算A**B
    maximum,fmax 计算最大值,fmax忽略NAN
    miximum,fmix 计算最小值,fmin忽略NAN
    mod 元素的求模计算(除法的余数)

    数学统计方法

    函数 功能
    sum 求和
    cumsum 求前缀和
    mean 求平均数
    std 求标准差
    var 求方差
    min 求最小值
    max 求最大值
    argmin 求最小值索引
    argmax 求最大值索引

    随机数

    函数 功能
    rand 返回给定维度的随机数组(0到1之间的数)
    randn 返回给定维度的随机数组
    randint 返回给定区间的随机整数
    choice 给定的一维数组中随机选择
    shuffle 原列表上将元素打乱(与random.shuffle相同)
    uniform 给定形状产生随机数组
    seed 设定随机种子(使相同参数生成的随机数相同)
    standard_normal 生成正态分布的随机样本数
  • 相关阅读:
    ASP.NET WebApi 文档Swagger中度优化
    ASP.NET五步打包下载Zip文件
    JavaScript——HashMap实现
    JS实现集合和ECMA6集合
    JavaScript——双向链表实现
    用JavaScript来实现链表LinkedList
    JavaScript结构三层——思想快速介绍
    浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。
    JavaScript原型OOP——你上车了吗?
    再谈JavaScript闭包及应用
  • 原文地址:https://www.cnblogs.com/Sheppard/p/12193788.html
Copyright © 2020-2023  润新知