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
'''

  



posted @   PandaCode辉  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示