NumPy学习(8):算术和统计

NumPy-算术和统计

NumPy-算术函数

简单的运算

  • NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。

  • 需要注意的是数组必须具有相同的形状或符合数组广播规则。

  • 例子

    import numpy as np 
     
    a = np.arange(9, dtype = np.float_).reshape(3,3)  
    b = np.array([10,10,10])  
    print (b)
    print (np.add(a,b))
    # 输出数组相加结果
      [[10. 11. 12.]
       [13. 14. 15.]
       [16. 17. 18.]]
    
    print (np.subtract(a,b))
    # 输出数组相减结果
      [[-10.  -9.  -8.]
       [ -7.  -6.  -5.]
       [ -4.  -3.  -2.]]
        
    print (np.multiply(a,b))
    # 输出数组相乘结果
      [[ 0. 10. 20.]
       [30. 40. 50.]
       [60. 70. 80.]]
    
    print (np.divide(a,b))
    # 输出数组相除结果
      [[0.  0.1 0.2]
       [0.3 0.4 0.5]
       [0.6 0.7 0.8]]
    

numpy.reciprocal()

  • numpy.reciprocal() 函数返回参数逐元素的倒数。

  • 例子

    import numpy as np 
     
    a = np.array([0.25,  1.33,  1,  100])  
    print (np.reciprocal(a))
    # 输出
      [4.  0.7518797  1.  0.01  ]
    

numpy.power()

  • numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

  • 例子

    import numpy as np 
     
    a = np.array([10,100,1000])  
    print (np.power(a,2))
    # 输出
      [100  10000  1000000]
    
    b = np.array([1,2,3]) 
    print (np.power(a,b))
    # 输出
      [10  10000  1000000000]
    

numpy.mod()

  • numpy.mod() 计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。

  • 例子

    import numpy as np
     
    a = np.array([10,20,30]) 
    b = np.array([3,5,7])  
    
    print (np.mod(a,b))
    # 输出
      [1 0 2]
    
    print (np.remainder(a,b))
    # 输出
      [1 0 2]
    

NumPy-统计函数

numpy.amin()

  • numpy.amin() 用于计算数组中的元素沿指定轴的最小值。

  • 函数格式

    numpy.amin(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
    
  • 参数说明

    参数说明
    a输入的数组,可以是一个NumPy数组或类似数组的对象。
    axis可选参数,用于指定在哪个轴上计算最小值。
    如果不提供此参数,则返回整个数组的最小值。
    可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
    out可选参数,用于指定结果的存储位置。
    keepdims可选参数
    如果为True,将保持结果数组的维度数目与输入数组相同。
    如果为False(默认值),则会去除计算后维度为1的轴。
    initial可选参数,用于指定一个初始值,然后在数组的元素上计算最小值。
    where可选参数,一个布尔数组,用于指定仅考虑满足条件的元素。
  • 例子

    import numpy as np 
     
    a = np.array([[3,7,5],[8,4,3],[2,4,9]]) 
    print (np.amin(a,1))
    # 输出
      [3 3 2]
    print (np.amin(a,0))
    # 输出
      [2 4 3]
    

numpy.amax()

  • numpy.amax() 用于计算数组中的元素沿指定轴的最大值。

  • 函数格式

    numpy.amax(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
    
  • 参数说明

    参数描述
    a输入的数组,可以是一个NumPy数组或类似数组的对象。
    axis可选参数,用于指定在哪个轴上计算最大值。
    如果不提供此参数,则返回整个数组的最大值。
    可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
    out可选参数,用于指定结果的存储位置。
    keepdims可选参数
    如果为True,将保持结果数组的维度数目与输入数组相同。
    如果为False(默认值),则会去除计算后维度为1的轴。
    initial可选参数,用于指定一个初始值,然后在数组的元素上计算最大值。
    where可选参数,一个布尔数组,用于指定仅考虑满足条件的元素。
  • 例子

    import numpy as np 
     
    a = np.array([[3,7,5],[8,4,3],[2,4,9]])
    print (np.amax(a))
    # 输出
      9
    
    print (np.amax(a, axis =  0))
    # 输出
      [8 7 9]
    

numpy.ptp()

  • numpy.ptp() 函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。

  • 函数格式

    numpy.ptp(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
    
  • 参数说明

    参数描述
    a输入的数组,可以是一个 NumPy 数组或类似数组的对象。
    axis可选参数,用于指定在哪个轴上计算峰-峰值。
    如果不提供此参数,则返回整个数组的峰-峰值。
    可以是一个整数表示轴的索引,也可以是一个元组表示多个轴
    out可选参数,用于指定结果的存储位置。
    keepdims可选参数如果为 True,将保持结果数组的维度数目与输入数组相同。
    如果为 False(默认值),则会去除计算后维度为1的轴。
    initial可选参数,用于指定一个初始值,然后在数组的元素上计算峰-峰值。
    where可选参数,一个布尔数组,用于指定仅考虑满足条件的元素。
  • 例子

    import numpy as np 
     
    a = np.array([[3,7,5],[8,4,3],[2,4,9]]) 
    print (np.ptp(a))
    # 输出
      7
    print (np.ptp(a, axis =  1))
    # 输出
      [4 5 7]
    print (np.ptp(a, axis =  0))
    # 输出
      [6 3 6]
    

numpy.percentile()

  • 百分位数

    • 百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。
    • 第 p 个百分位数是这样一个值,它使得至少有 p% 的数据项小于或等于这个值,且至少有 (100-p)% 的数据项大于或等于这个值。
  • 函数numpy.percentile() 用于计算百分位数

  • 函数格式

    numpy.percentile(a, q, axis)
    
  • 参数说明

    参数说描述
    a输入数组
    q要计算的百分位数,在 0 ~ 100 之间
    axis沿着它计算百分位数的轴
  • 例子

    import numpy as np 
     
    a = np.array([[10, 7, 4], [3, 2, 1]])
    
    print (np.percentile(a, 50)) 
    # 输出
      3.5
    print (np.percentile(a, 50, axis=0))
    # 输出
      [6.5 4.5 2.5]
    print (np.percentile(a, 50, axis=1))
    # 输出
      [7. 2.]
    
    print (np.percentile(a, 50, axis=1, keepdims=True))
    # 输出
      [[7.]
       [2.]]
    

numpy.median()

  • numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

  • 函数格式

    numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=<no value>)
    
  • 参数说明

    参数描述
    a输入的数组,可以是一个 NumPy 数组或类似数组的对象。
    axis可选参数,用于指定在哪个轴上计算中位数。
    如果不提供此参数,则计算整个数组的中位数。
    可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
    out可选参数,用于指定结果的存储位置。
    overwrite_input可选参数,如果为True,则允许在计算中使用输入数组的内存。
    这可能会在某些情况下提高性能,但可能会修改输入数组的内容。
    keepdims可选参数
    如果为True,将保持结果数组的维度数目与输入数组相同。
    如果为False(默认值),则会去除计算后维度为1的轴。
  • 例子

    import numpy as np 
     
    a = np.array([[30,65,70],[80,95,10],[50,90,60]])  
    print (np.median(a))
    # 输出
      65.0
    
    print (np.median(a, axis =  0))
    # 输出
      [50. 90. 60.]
    
    print (np.median(a, axis =  1))
    # 输出
      [65. 80. 60.]
    

numpy.mean()

  • numpy.mean() 函数返回数组中元素的算术平均值,如果提供了轴,则沿其计算。

    • 算术平均值是沿轴的元素的总和除以元素的数量。
  • 函数格式

    numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
    
  • 参数说明

    参数描述
    a输入的数组,可以是一个 NumPy 数组或类似数组的对象。
    axis可选参数,用于指定在哪个轴上计算平均值。
    如果不提供此参数,则计算整个数组的平均值。
    可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
    dtype可选参数,用于指定输出的数据类型。
    如果不提供,则根据输入数据的类型选择合适的数据类型。
    out可选参数,用于指定结果的存储位置。
    keepdims可选参数
    如果为True,将保持结果数组的维度数目与输入数组相同。
    如果为False(默认值),则会去除计算后维度为1的轴。
  • 例子

    import numpy as np 
     
    a = np.array([[1,2,3],[3,4,5],[4,5,6]])  
    print (np.mean(a))
    # 输出
      3.6666666666666665
        
    print (np.mean(a, axis =  0))
    # 输出
      [2.66666667 3.66666667 4.66666667]
        
    print (np.mean(a, axis =  1))
    # 输出
      [2. 4. 5.]
    

numpy.average()

  • numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

    • 该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。
  • 加权平均值即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。

  • 函数格式

    numpy.average(a, axis=None, weights=None, returned=False)
    
  • 参数说明

    参数说明
    a输入的数组,可以是一个 NumPy 数组或类似数组的对象。
    axis可选参数,用于指定在哪个轴上计算加权平均值。
    如果不提供此参数,则计算整个数组的加权平均值。
    可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
    weights可选参数,用于指定对应数据点的权重。
    如果不提供权重数组,则默认为等权重。
    returned可选参数,如果为True,将同时返回加权平均值和权重总和。
  • 例子

    • 一维数组

      import numpy as np 
       
      a = np.array([1, 2, 3, 4]) 
      print (np.average(a))
      # 输出
        2.5
      wts = np.array([4, 3, 2, 1]) 
      print (np.average(a,weights = wts))
      # 输出
        2.0
          
      print (np.average([1, 2, 3, 4], weights = [4, 3, 2, 1], returned = True))
      # 输出
        (2.0, 10.0)
      
    • 多维数组,可以指定用于计算的轴。

      import numpy as np 
       
      a = np.arange(6).reshape(3,2)  
      wt = np.array([3,5])  
      print (np.average(a, axis =  1, weights = wt))
      # 输出
        [0.625 2.625 4.625]
          
      print (np.average(a, axis =  1, weights = wt, returned =  True))
      # 输出
        (array([0.625, 2.625, 4.625]), array([8., 8., 8.]))
      

标准差

  • 标准差是一组数据平均值分散程度的一种度量。

  • 标准差是方差的算术平方根。

  • 标准差计算公式

    std = sqrt(mean((x - x.mean())**2))
    
  • 例子

    import numpy as np 
     
    print (np.std([1,2,3,4]))
    # 输出
      1.1180339887498949
    

方差

  • 统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数

  • 计算公式

    mean((x - x.mean())** 2)
    
  • 例子

    import numpy as np
     
    print (np.var([1,2,3,4]))
    # 输出
      1.25
    

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值