• 【NumPy基础(05)常用函数】


    一、计算函数

    计算函数包括:

    1. max() ——最大值

    2. min()——最小值

    3. mean() ——平均值

    4. median() ——中位数

    5. std() ——标准差

    6. var()——方差

    7. sum() ——求和

    8. quantile() ——分位数

    调用语法(基本类似):

    # 维度分别代表2学校、3年级、4班级
    my_matrix = np.random.randint(20,40,24).reshape(2,3,4)
    my_matrix
    
    >>>
    array([[[38, 32, 21, 20],
            [22, 25, 21, 25],
            [21, 23, 38, 39]],
    
           [[38, 23, 29, 32],
            [36, 26, 39, 32],
            [34, 30, 28, 34]]])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    my_matrix.sum()
    >>>
    706
    
    • 1
    • 2
    • 3

    部分维度计算方式:

    # 把年级维度和班级维度聚合,只保留学校的
    my_matrix.sum(axis=(1,2))
    >>>
    array([325, 381])
    
    • 1
    • 2
    • 3
    • 4

    特殊调用median() 、quantile() :

    NumPy的聚合函数里,median()quantile() 俩不能直接通过数组调用,而必须使用np.median()np.quantile() 来实现,并且后者具有参数q表述分位数。

    np.quantile(my_matrix,axis=-1,q=0.5) # -1 表示倒数第一维
    np.median(my_matrix,axis = -1)
    >>>
    # 因为中位数和0.5分位数一致,所以结果是相同的
    array([[27. , 28. , 25.5],
           [26.5, 27.5, 31. ]])
    
    array([[27. , 28. , 25.5],
           [26.5, 27.5, 31. ]])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    缺失值处理方式:

    如果数组具有缺失值,则对应维度也会被设为缺失值;如果想要忽略缺失值进行计算,可以用nan开头的聚合函数:

    my_matrix = my_matrix.astype("float") # 更改数组类型,因为np.nan 是特殊的浮点类型
    my_matrix[0][0][0] = np.nan # 赋值
    
    my_matrix.max(axis=(1,2))
    np.nanmax(my_matrix,axis=(1,2))
    >>>
    array([nan, 39.])
    array([39., 39.])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    相关性计算

    这是以两个数组变量作为输入的函数,计算它们之间的相关性情况。

    **** ——协方差计算

    输出结果为一个协方差矩阵,**results[ i ][ j ]**表示第i个变量与第j个变量的协方差。

    target1 = np.array([1,3,5,9])
    target2 = np.array([1,5,3,-9])
    np.cov(target1,target2)
    
    >>>
    array([[ 11.66666667, -16.66666667],
           [-16.66666667,  38.66666667]])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    numpy的cov函数使用的三点:

    1. 变量矩阵的一行表示一个随机变量;

    2. bais参数控制计算时除以n-1还是n, True表示除以n,False表示除以n-1;

    3. 输出结果是一个协方差矩阵, results[i][j]表示第i个随机变量与第j个随机变量的协方差.

    **** ——相关系数

    相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数也可以看成协方差:一种剔除了两个变量量纲影响、标准化后的特殊协方差,它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。

    np.corrcoef([target1,target2])
    
    >>>
    array([[ 1.        , -0.78470603],
           [-0.78470603,  1.        ]])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    numpy的corrcoef函数使用的两点:

    1. 变量矩阵的一行表示一个随机变量;

    2. 输出结果是一个相关系数矩阵, results[i][j]表示第i个随机变量与第j个随机变量的相关系数.

    二、逻辑函数

    常见逻辑函数包含:

    1. 比较运算符,<、>、≤、≥、≠和==

    2. 内置函数,isnan()、isinf()、all()、any()

    3. 逻辑运算符,或运算符|、和运算符&以及非运算符~

    salary = np.array([[9000,10000],[11000,12000]])
    (salary>10000).all(axis=1)
    (salary>10000).all(axis=1)
    >>>
    array([False,  True])
    array([False,  True])
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    逻辑函数优先级:

    • 优先级从高到低:not(“~”)、and(“&”)、or(“|”)
    a = np.array([True])
    b = np.array([False])
    
    ~a | a 
    ~b & b 
    a | b & b 
    
    >>>
    array([True])# 说明not优先级高于or
    array([False])# 说明not优先级高于and
    array([True])# 说明and优先级高于or
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    逻辑函数可以被广播:

    a = np.array([True, False])
    b = np.array([True, False])
    a | b[:, None] # 广播
    
    >>>
    array([[ True,  True],
           [ True, False]])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    三、索引函数

    常见索引函数包含:

    1. ****** ——返回非零数的索引**

    2. ****** ——返回最大数的索引**

    3. ****** ——返回最小数的索引**

    a = np.array([0,-5,0,1,3,-1])
    np.nonzero(a)
    a.argmax()
    a.argmin()
    
    >>>
    (array([1, 3, 4, 5], dtype=int64),)
    4
    1
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    什么是代理IP池?如何判断IP代理商的IP池是否真实优质?
    MySQL版数据库原理与应用期末复习重点(1)---关系代数(除运算和自连接查询、手写例题)
    在 CelebA 数据集上训练的 PyTorch 中的基本变分自动编码器
    平衡三进制分布式计算
    leetcode-414-第三大的数
    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
    543. 二叉树的直径
    不愧是字节出来的,太厉害了...
    Abnova 环孢素A单克隆抗体,及其研究工具
    sentinel读取监控文件分析
  • 原文地址:https://blog.csdn.net/eason_nnn/article/details/126353548