numpy统计分布方法

numpy统计分布方法

  1. 最小值和最大值

    min():获取整个数组中最小的值

    max():获取整个数组中最大的值

    axis参数:

    • 如果没有axis参数则获取整个数组的最小值或最大值,返回的为一个值。
    • 如果axis=0(1),则获取对应纵轴(横轴)方向的数组,即取出每一行(列)的最大值或最小值
    # 不加参数
    arr = np.array([[14,4,46,11],[11,44,33,22],[10,32,22,17]])
    print(arr.max())
    print(arr.min())
    
    # 结果
    46
    4
    
    # 加axis参数
    print(arr.max(axis=0))
    print(arr.min(axis=1))
    
    # 结果
    [14 44 46 22]
    [ 4 11 10]
    
  2. 最大值索引和最小值索引

    argmax():将整个数组展平为一维数组后再获取最大值的索引

    argmin():将整个数组展平为一维数组后再获取最小值的索引

    # 最大值索引和最小值索引
    print(arr.argmax())
    print(arr.argmin())
    
    # 结果
    2
    1
    

    axis参数:如果没有axis参数则获取整个数组的最小值索引或最大值索引,返回的为一个值。

    # axis参数演示
    print(arr.argmax(axis=0))
    print(arr.argmin(axis=1))
    
    # 结果
    [0 1 0 1]
    [2 1 1]
    
  3. 标准差与方差

    arr.std() / arr.var()

    方差和标准差可以反映数据的分布:当标准差与方差越大,表示数据越分散;当标准差与方差越小,数据越集中。

    可加axis参数,用法与上述类似,这里不多做介绍。如果不加axis参数则表示对数组的每一个元素都进行计算。

    标准差

    print(f"标准差{arr.std()}")
    
    # 结果
    13.164556792978468
    

    方差

    print(f"方差{arr.var()}")
    
    # 结果
    173.30555555555554
    
  4. 求和与求均值

    axis参数使用可参照上面知识点

    sum() :求和

    求和

    print(arr.sum())
    print(arr.sum(axis=0))
    print(arr.sum(axis=1))
    
    # 结果
    266
    [ 35  80 101  50]
    [ 75 110  81]
    

    mean():求平均值

    print(arr.mean())
    print(arr.mean(axis=0))
    print(arr.mean(axis=0))
    
    # 结果
    22.166666666666668
    [11.66666667 26.66666667 33.66666667 16.66666667]
    [11.66666667 26.66666667 33.66666667 16.66666667]
    
    
  5. 累计求和

    cumsum()

    当没有axis参数时,将数组中的每个元素依次相加,然后将每一个相加后的值以一维数组的形式进行返回

    axis的参数使用可参照以上知识点

    print(arr5.cumsum())
    print(arr5.cumsum(axis=0))
    print(arr5.cumsum(axis=1))
    
    # 结果
    [ 14  18  64  75  86 130 163 185 195 227 249 266]
    [[ 14   4  46  11]
     [ 25  48  79  33]
     [ 35  80 101  50]]
    [[ 14  18  64  75]
     [ 11  55  88 110]
     [ 10  42  64  81]]
    
  6. 累计求积

    cumprod()

    当没有axis参数时,将数组中的每个元素依次相乘,然后将每一个相乘后的值以一维数组的形式进行返回

    axis的参数使用可参照以上知识点

    print(arr5.cumprod())
    print(arr5.cumprod(axis=0))
    print(arr5.cumprod(axis=1))
    
    # 结果
    [              14               56             2576            28336
               311696         13714624        452582592       9956817024
          99568170240    3186181447680   70095991848960 1191631861432320]
          
    [[   14     4    46    11]
     [  154   176  1518   242]
     [ 1540  5632 33396  4114]]
     
    [[    14     56   2576  28336]
     [    11    484  15972 351384]
     [    10    320   7040 119680]]
    
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
假设我们有一个班级的成绩单,包含每个学生的语文、数学、英语成绩,我们可以使用 NumPy 对成绩进行统计分析。 首先,我们需要导入 NumPy 库: ```python import numpy as np ``` 然后,我们可以使用 NumPy 创建一个二维数组,其中每一行表示一个学生的成绩: ```python scores = np.array([ [85, 76, 90], [78, 92, 84], [82, 85, 88], [90, 89, 92], [76, 82, 80], [88, 90, 91], [87, 80, 85], [92, 94, 89], [79, 81, 76], [85, 87, 83] ]) ``` 接下来,我们可以使用 NumPy 提供的函数分别计算每一科目的平均分、最高分、最低分、标准差等统计指标: ```python # 计算每一科目的平均分 means = np.mean(scores, axis=0) print("平均分:", means) # 计算每一科目的最高分 maxs = np.max(scores, axis=0) print("最高分:", maxs) # 计算每一科目的最低分 mins = np.min(scores, axis=0) print("最低分:", mins) # 计算每一科目的标准差 stds = np.std(scores, axis=0) print("标准差:", stds) ``` 输出结果如下: ``` 平均分: [84.2 86.1 86.8] 最高分: [92 94 92] 最低分: [76 76 76] 标准差: [4.7094162 6.04226406 4.38748219] ``` 除了计算每一科目的统计指标,我们还可以计算每个学生的总分和平均分,并按照总分从高到低排序: ```python # 计算每个学生的总分和平均分 totals = np.sum(scores, axis=1) means = np.mean(scores, axis=1) print("总分:", totals) print("平均分:", means) # 按照总分从高到低排序 indices = np.argsort(totals)[::-1] print("排序结果:", indices) ``` 输出结果如下: ``` 总分: [251 254 255 271 238 269 252 275 236 255] 平均分: [83.66666667 84.66666667 85. 90.33333333 79.33333333 89.66666667 84. 91.66666667 78.66666667 85. ] 排序结果: [7 5 3 2 6 9 1 0 8 4] ``` 通过这些统计指标,我们可以更好地了解班级成绩的分布情况,帮助我们更好地指导学生学习。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值