ad

从《Python数据分析案例教程》中_领悟数据和Python的魅力_3.3.3 NumPy 统计函数

admin 125 2023-10-25

【摘要】 本书摘自《Python数据分析案例教程》一书中第3章,第3节,由万念斌、肖伟东、叶丰标编著。

3.3.3 NumPy 统计函数

NumPy 提供了很多统计函数,主要用于从一系列数据中查找最大值、最小值,求和、平 均值、百分位数、中位数,分析标准差、方差等。【案例3-9】给定NumPy 数组数据(3行3列),应用NumPy 统计函数求出每行/列的最大值、最大值与最小值的差、百分位数、中位数、平均值等。程序代码如下:

import numpy as np

def main():

a=np.array([[1,7,4],[2,5,8],[6,9,3]])

从《Python数据分析案例教程》中_领悟数据和Python的魅力_3.3.3 NumPy  统计函数

print('原始数组'.center(30,'='),\n',a)

print(按行求最小值、按列求最大值、数组最大值'.center(30,'='),

\n',np.amin(a,axis=1),np.amax(a,axis=0),np.amax(a))

#按行求最小值,按列求最大值

print(按行、按列求最大值与最小值的差'.center(30,'='),\n',np.ptp(a,axis=1),np. ptp(a,axis=0),np.ptp(a)) # 按行、按列求最大值与最小值的差

#numpy.percentile(a,q,axis)a为数组,q 为要计算的百分位数(0~100),axis为轴 print(按列求50%的百分位数.center(30,'—'),\n',np.percentile(a,50,axis=0))

#求中间那个数

print(按列求25%的百分位数.center(30,'—'),\n',np.percentile(a,25,axis=0)) #即(中间数一最小数)/2

print(按列求75%的百分位数'.center(30,'一'),`\n',np.percentile(a,75,axis=0)) #即(最大数一中间数)/2

print(按行求50%的百分位数'.center(30,一'),`\n',np.percentile(a,50,axis=1)) #求中间那个数

print(不指定轴求50%的百分位数.center(30 一'),\n',np.percentile(a,50)) print(求中位数.center(30,'-'),\n',np.median(a))

print(按列求中位数.center(30,'一'),`\n',np.median(a,axis=0))

print(按行求中位数.center(30,'一'),\n',np.median(a,axis=1))

print(求平均值,按行、列求平均值'.center(30,'='),\n',

np.mean(a),np.mean(a,axis=1),np.mean(a,axis=0))

if name ==" main ";

__ __ __ __

main()

程序运行结果如下:

D:\anaconda\python.exe C:/Users/dell/PycharmProjects/My01/numpy/case33Numpy 的统 计函数.py

原始数组=

[[ 1 7 4]

[ 2 5 8]

[ 6 9 3]]

=====按行求最小值、按列求最大值、数组最大值======

[1 2 3][6 9 8] 9

=======按行、按列求最大值与最小值的差========

[6 6 6][ 5 4 5 ] 8

—按列求50%的百分位数----------

[ 2. 7. 4.]

按列求25%的百分位数----------

[1.5 6. 3.5]

-按列求75%的百分位数---------

[ 4. 8. 6.]

---------按行求50%的百分位数---------

[4. 5. 6.]

--------不指定轴求50%的百分位数--------

5.0

-------------求中位数-------------

5.0

------------按列求中位数------------

[ 2. 7. 4.]

-按行求中位数------------

[ 4. 5. 6.]

========求平均值,按行、列求平均值=========

5.0 [ 4. 5. 6.][ 3. 7. 5.]

Process finished with exit code 0

【案例3-10】给定 NumPy 数组数据,应用NumPy 统计函数求出加权平均数、标准差和 方差。程序代码如下:

import numpy as np

def main():

a=np.array([1,2,3,4])

printC原始数组'.center(30,'='),'\n',a)

printC不指定权重的加权平均数,center(30,'='),\n',np.average(a))

#不指定权重时相当于mean()函数

wts=np.array([1,3,4,2])

print(按指定权重的加权平均数.center(30,'='),\n',np.average(a,axis=0,weights= wts)) # 加权平均值=(1*1+2*3+3*4+4*2)/(1+3+4+2)

#标准差是一组数据平均值分散程度的一种度量 std=sqrt(mean((x-x.mean())**2)) print(求标准差'.center(30,'—'),\n',np.std(a))

#方差是每个样本值与全体样本值平均数之差的平方值的平均数,var=mean((x-xmean())**2)

print(求方差'.center(30,'-'),`\n',np.var(a))

if name ==" main ":

__ __ __ __

main()

程序运行结果如下:

D:\anaconda\python.exe C:/Users/dell/PycharmProjects/My01/numpy/case330加权平均 标准差方差.py

原始数组=============

[1 2 3 4]

=========不指定权重的加权平均数==========

2.5

=========按指定权重的加权平均数==========

2.7

-求标准差-

1.118033988749895

求方差-

1.25

Process finished with exit code 0

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:学习《零基础Java从入门到精通》_12.1.4 获取方法的信息
下一篇:阅读《基于Python语言的软件测试技术》_打开新的知识大门_1.7 软件测试与Python
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×