| 
 
	积分2080贡献 精华在线时间 小时注册时间2020-2-1最后登录1970-1-1 
 | 
 
 
 楼主|
发表于 2020-9-20 17:26:00
|
显示全部楼层 
| 本帖最后由 cwllsss 于 2020-9-20 19:03 编辑 
 平均值的计算
 #使用jupyter
 #导入numpy和pandas这两个库
 import numpy as np
 import pandas as pd
 1.自定义函数
 #定义mean函数求数据均值
 def mean(arr):
 n = arr.shape[0]
 sum = 0
 for i in range(0,5):
 sum +=arr
 meanArr = sum/n
 return meanArr
 
 
 
 #计算均值
 #NumPy 从已有的数组创建数组
 #numpy.asarray(a, dtype = None, order = None)
 arr1 = [1,2,3,4,5]
 arr1 = np.asarray(arr1, dtype = None, order = None)
 #获得数组中元素的个数
 n = arr1.shape[0]
 
 --------------------------------------------------------------------
 
 ![C]R8[)OX57X_[[~6TR`F]JX.png C]R8[)OX57X_[[~6TR`F]JX.png](forum.php?mod=attachment&aid=OTM5NTd8NGVlYjc1ZTJ8MTc2MTg4NDA4M3wwfDk3MzUz&noupdate=yes)  --------------------------------------------------------------------
 
 meanArr1 =  mean(arr1)
 -------------------------------------------------------------------
 
 
 ![BDH4J]QYTP5Y%I)HX7TFZZM.png BDH4J]QYTP5Y%I)HX7TFZZM.png](forum.php?mod=attachment&aid=OTM5NTh8YTRhYTkxZDd8MTc2MTg4NDA4M3wwfDk3MzUz&noupdate=yes)  
 --------------------------------------------------------------------
 
 2.也可以使用numpy的函数 numpy.mean()
 '''numpy.mean()
 numpy.mean() 函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。
 
 算术平均值是沿轴的元素的总和除以元素的数量。'''
 
 meanArr2 = np.mean(arr1)
 
 #还可以使用pandas的函数 series1.mean()
 
 arr2 = [1,2,3,4,5]
 series1 = pd.Series(arr2)
 
 series1.mean()
 
 '''在气象数据分析上面,一个数据的维度可能为(time,latitude,longitude,level)
 若有同位素HDO的数据为HDO(time,latitude,longitude,level)'''
 HDO_Timemean = np.mean(HDO,0) #沿0轴(也就是time时间轴进行平均计算)
 HDO_Latmean = np.mean(HDO,1) #沿0轴(也就是latitude纬度轴进行平均计算)
 HDO_Lonmean = np.mean(HDO,2) #沿0轴(也就是longitude经度轴进行平均计算)
 HDO_Levmean = np.mean(HDO,3) #沿0轴(也就是level高度轴进行平均计算)
 
 
 3.pandas也有类似的用法
 #先使用numpy生成随机数供计算
 '''np.random.ranint(low,hight,size)
 
 生成(low,high)之间size个的随机数'''
 
 arr3 = np.random.randint(1,100,size=[5,10])
 
 ![]N101333NU)5_FP61({NE{5.png ]N101333NU)5_FP61({NE{5.png](forum.php?mod=attachment&aid=OTM5NTl8MjczZWMyYWF8MTc2MTg4NDA4M3wwfDk3MzUz&noupdate=yes)  
 
 series2 = pd.DataFrame(arr3)#生成pd的数据类型DataFrame
 
 
   #按列求平均值
 series2.mean(axis=0)
 #返回10列的平均值
 
 
   #axis 可以省略
 series2.mean(0)
 
 
 #按行求平均值
 series2.mean(axis=1)
 #返回5行的平均值
 
 
   
 
 
 | 
 |