NumPy学习8
今天学习了NumPy统计函数
16,NumPy统计函数
numpy_test8.py :
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | import numpy as np ''' 16,NumPy统计函数 NumPy 提供了许多统计功能的函数,比如查找数组元素的最值、百分位数、方差以及标准差等。 ''' ''' 1) numpy.amin() 和 numpy.amax() 这两个函数用于计算数组沿指定轴的最小值与最大值: amin() 沿指定的轴,查找数组中元素的最小值,并以数组形式返回; amax() 沿指定的轴,查找数组中元素的最大值,并以数组形式返回。 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。 ''' print ( "----16,NumPy统计函数----" ) print ( "----1) numpy.amin() 和 numpy.amax()----" ) arr1 = np.array([[ 3 , 7 , 5 ], [ 8 , 4 , 3 ], [ 2 , 4 , 9 ]]) print ( 'arr1 : ' , arr1) # numpy.amin() 最小值 print ( 'np.amin(arr1) : ' , np.amin(arr1)) # numpy.amin() 最小值,axis=1 表示沿着水平方向 print ( 'np.amin(arr1, 1) : ' , np.amin(arr1, 1 )) # numpy.amax() 最大值 print ( 'np.amax(arr1) : ' , np.amax(arr1)) # numpy.amax() 最大值, axis=0 表示沿着垂直方向 print ( 'np.amax(arr1 ,axis=0) : ' , np.amax(arr1, axis = 0 )) ''' arr1 : [[3 7 5] [8 4 3] [2 4 9]] np.amin(arr1) : 2 np.amin(arr1, 1) : [3 3 2] np.amax(arr1) : 9 np.amax(arr1 ,axis=0) : [8 7 9] ''' ''' 2) numpy.ptp() numpy.ptp() 用于计算数组元素中最值之差值,也就是(最大值 - 最小值)。 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。 ''' print ( "----2) numpy.ptp()----" ) print ( 'arr1 : ' , arr1) print ( "沿着axis 1,最值之差值:" ,np.ptp(arr1, 1 )) print ( "沿着axis 0,最值之差值:" ,np.ptp(arr1, 0 )) ''' arr1 : [[3 7 5] [8 4 3] [2 4 9]] 沿着axis 1,最值之差值: [4 5 7] 沿着axis 0,最值之差值: [6 3 6] ''' ''' 3) numpy.percentile() 百分位数,是统计学中使用的一种度量单位。该函数表示沿指定轴,计算数组中任意百分比分位数,语法格式如下: numpy.percentile(a, q, axis) 函数 numpy.percentile() 的参数说明: a:输入数组; q:要计算的百分位数,在 0~100 之间; 介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就(25,75) axis:沿着指定的轴计算百分位数。 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。 ''' print ( "----3) numpy.percentile()----" ) print ( 'arr1 : ' , arr1) print ( "沿着axis=0计算百分位数" , np.percentile(arr1, 10 , 0 )) print ( "沿着axis=1计算百分位数" , np.percentile(arr1, 10 , 1 )) ''' arr1 : [[3 7 5] [8 4 3] [2 4 9]] 沿着axis=0计算百分位数 [2.2 4. 3.4] 沿着axis=1计算百分位数 [3.4 3.2 2.4] ''' ''' 4) numpy.median() numpy.median() 用于计算 a 数组元素的中位数(中值): 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。 ''' print ( "----4) numpy.median()----" ) print ( 'arr1 : ' , arr1) # np.median() 数组元素的中位数 print ( "np.median(arr1): " , np.median(arr1)) # np.median() 数组元素的中位数 ,axis 0: 垂直方向 print ( "np.median(arr1, axis=0): " , np.median(arr1, axis = 0 )) # np.median() 数组元素的中位数 ,axis 1: 水平方向 print ( "np.median(arr1, axis=1): " , np.median(arr1, axis = 1 )) ''' arr1 : [[3 7 5] [8 4 3] [2 4 9]] np.median(arr1): 4.0 np.median(arr1, axis=0): [3. 4. 5.] np.median(arr1, axis=1): [5. 4. 4.] ''' ''' 5) numpy.mean() 该函数表示沿指定的轴,计算数组中元素的算术平均值(即元素之总和除以元素数量)。 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。 ''' print ( "----5) numpy.mean()----" ) print ( 'arr1 : ' , arr1) print ( "np.mean(arr1): " , np.mean(arr1)) print ( '沿轴 0 水平方向,调用 mean() 函数:' ) print ( "np.mean(arr1, axis=0): " , np.mean(arr1, axis = 0 )) print ( '沿轴 1 垂直方向,调用 mean() 函数:' ) print ( "np.mean(arr1, axis=1): " , np.mean(arr1, axis = 1 )) ''' arr1 : [[3 7 5] [8 4 3] [2 4 9]] np.mean(arr1): 5.0 沿轴 0 水平方向,调用 mean() 函数: np.mean(arr1, axis=0): [4.33333333 5. 5.66666667] 沿轴 1 垂直方向,调用 mean() 函数: np.mean(arr1, axis=1): [5. 5. 5.] ''' ''' 6) numpy.average() 加权平均值是将数组中各数值乘以相应的权数,然后再对权重值求总和,最后以权重的总和除以总的单位数(即因子个数)。 numpy.average() 根据在数组中给出的权重,计算数组元素的加权平均值。 该函数可以接受一个轴参数 axis,如果未指定,则数组被展开为一维数组。 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。 ''' print ( "----6) numpy.average()----" ) arr2 = np.array([ 1 , 4 , 7 , 9 ]) print ( 'arr2 : ' , arr2) # average()函数: print ( "np.average(arr2): " , np.average(arr2)) # 若不指定权重相当于对数组求均值 weight = np.array([ 7 , 5 , 3 , 1 ]) # 调用 average() 函数: print ( "np.average(arr2, weights=weight): " , np.average(arr2, weights = weight)) # returned=Ture,则返回权重的和 print ( "np.average(arr2, weights=weight, returned=True): " , np.average(arr2, weights = weight, returned = True )) ''' arr2 : [1 4 7 9] np.average(arr2): 5.25 np.average(arr2, weights=weight): 3.5625 np.average(arr2, weights=weight, returned=True): (3.5625, 16.0) ''' # 在多维数组中,您也可以指定 axis 轴参数。 print ( "----在多维数组中,您也可以指定 axis 轴参数。----" ) arr3 = np.arange( 6 ).reshape( 3 , 2 ) print ( 'arr3 : ' , arr3) # 指定权重 wt = np.array([ 3 , 5 ]) print ( "np.average(arr3, axis=1, weights=wt): " , np.average(arr3, axis = 1 , weights = wt)) # returned=Ture,则返回权重的和 print ( "np.average(arr3, axis=1, weights=wt, returned=True): " , np.average(arr3, axis = 1 , weights = wt, returned = True )) ''' arr3 : [[0 1] [2 3] [4 5]] np.average(arr3, axis=1, weights=wt): [0.625 2.625 4.625] np.average(arr3, axis=1, weights=wt, returned=True): (array([0.625, 2.625, 4.625]), array([8., 8., 8.])) ''' ''' 7) numpy.var() 方差 方差,在统计学中也称样本方差,如何求得方差呢?首先我们要知道全体样本的的平均值, 然后再求得每个样本值与均值之差的平方和,最后对差的平方和求均值,公式如下(其中 n 代表元素个数): ''' print ( "----7) numpy.var() 方差----" ) print ( 'np.var([1, 2, 3, 4]) : ' , np.var([ 1 , 2 , 3 , 4 ])) ''' np.var([1, 2, 3, 4]) : 1.25 ''' ''' 8) numpy.std() 标准差 标准差是方差的算术平方根,用来描述一组数据平均值的分散程度。若一组数据的标准差较大, 说明大部分的数值和其平均值之间差异较大;若标准差较小,则代表这组数值比较接近平均值。它的公式如下: std = sqrt(mean((x - x.mean())**2 ''' print ( "----8) numpy.std() 标准差----" ) print ( 'np.std([1, 2, 3, 4]) : ' , np.std([ 1 , 2 , 3 , 4 ])) ''' np.std([1, 2, 3, 4]) : 1.118033988749895 ''' |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具