- 积分
- 2085
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 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]
--------------------------------------------------------------------
--------------------------------------------------------------------
meanArr1 = mean(arr1)
-------------------------------------------------------------------
--------------------------------------------------------------------
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])
series2 = pd.DataFrame(arr3)#生成pd的数据类型DataFrame
#按列求平均值
series2.mean(axis=0)
#返回10列的平均值
#axis 可以省略
series2.mean(0)
#按行求平均值
series2.mean(axis=1)
#返回5行的平均值
|
|