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]]
    
    
在Python中,NumPy是一个强大的数值计算库,可以用来方便地进行各种统计分析,包括生成成绩分布、计算平均值、标准差等。以下是使用NumPy进行基本统计学操作生成成绩的一些步骤: 1. **安装和导入NumPy**: 首先,确保已经安装了NumPy,如果没有,可以通过pip安装: ``` pip install numpy ``` 然后在代码中导入NumPy模块: ```python import numpy as np ``` 2. **创建成绩数据**: 假设我们有一个包含学生分数的列表或数组,例如: ```python scores = [85, 90, 78, 92, 88, 80, 95, 76] ``` 3. **基本统计计算**: - **平均分(均值)**: `np.mean(scores)` - **标准差**: `np.std(scores)` - **中位数**: 使用`np.median()`,因为NumPy默认是升序排列 - **百分位数**: `np.percentile(scores, [25, 50, 75])` 返回Q1, Q2 (中位数), Q3 4. **生成成绩分布**: - **直方图(histogram)**: `plt.hist(scores, bins=10)`,可以使用matplotlib库配合展示分数的分布情况。 5. **保存或输出结果**: 对于数值结果,可以直接打印;对于可视化结果,可能需要结合Matplotlib或Seaborn库进行显示。 ```python # 示例 mean_score = np.mean(scores) std_dev = np.std(scores) median_score = np.median(scores) percentiles = np.percentile(scores, [25, 50, 75]) print(f"平均分: {mean_score}") print(f"标准差: {std_dev}") print(f"中位数: {median_score}") print(f"百分位数(25%, 50%, 75%): {percentiles}") # 可视化 import matplotlib.pyplot as plt plt.hist(scores, bins=10) plt.xlabel('分数') plt.ylabel('频率') plt.title('成绩分布') plt.show() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值