python温度梯度函数,python 梯度计算

Python气象数据处理与绘图(2):常用数据计算方法

对于气象绘图来讲,第一步是对数据的处理,通过各类公式,或者统计方法将原始数据处理为目标数据。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请网站空间、营销软件、网站建设、娄星网站维护、网站推广。

按照气象统计课程的内容,我给出了一些常用到的统计方法的对应函数:

在计算气候态,区域平均时均要使用到求均值函数,对应NCL中的dim_average函数,在python中通常使用np.mean()函数

numpy.mean(a, axis, dtype)

假设a为[time,lat,lon]的数据,那么

需要特别注意的是,气象数据中常有缺测,在NCL中,使用求均值函数会自动略过,而在python中,当任意一数与缺测(np.nan)计算的结果均为np.nan,比如求[1,2,3,4,np.nan]的平均值,结果为np.nan

因此,当数据存在缺测数据时,通常使用np.nanmean()函数,用法同上,此时[1,2,3,4,np.nan]的平均值为(1+2+3+4)/4 = 2.5

同样的,求某数组最大最小值时也有np.nanmax(), np.nanmin()函数来补充np.max(), np.min()的不足。

其他很多np的计算函数也可以通过在前边加‘nan’来使用。

另外,

也可以直接将a中缺失值全部填充为0。

np.std(a, axis, dtype)

用法同np.mean()

在NCL中有直接求数据标准化的函数dim_standardize()

其实也就是一行的事,根据需要指定维度即可。

皮尔逊相关系数:

相关可以说是气象科研中最常用的方法之一了,numpy函数中的np.corrcoef(x, y)就可以实现相关计算。但是在这里我推荐scipy.stats中的函数来计算相关系数:

这个函数缺点和有点都很明显,优点是可以直接返回相关系数R及其P值,这避免了我们进一步计算置信度。而缺点则是该函数只支持两个一维数组的计算,也就是说当我们需要计算一个场和一个序列的相关时,我们需要循环来实现。

其中a[time,lat,lon],b[time]

(NCL中为regcoef()函数)

同样推荐Scipy库中的stats.linregress(x,y)函数:

slop: 回归斜率

intercept:回归截距

r_value: 相关系数

p_value: P值

std_err: 估计标准误差

直接可以输出P值,同样省去了做置信度检验的过程,遗憾的是仍需同相关系数一样循环计算。

python2.7将华氏温度转换为摄氏温度,并产生一张0~300F与C的对照表,每隔20度输出一次,要求使用列表存储

f=[i for i in xrange(0,300,20)]

c=[round(5.0/9*(i-32),2) for i in f]

print f

print c

python2.7

python中的TempStr应用和温度转换

描述

温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。

请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。

转换算法如下:(C表示摄氏度、F表示华氏度)

C = ( F - 32 ) / 1.8

F = C * 1.8 + 32

要求如下:

(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;

(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;

(3) 不考虑异常输入的问题,输出保留小数点后两位;

(4) 使用input()获得测试用例输入时,不要增加提示字符串。

程序:

TempStr = input()

if TempStr[0] in ['F']:    #因为要求输入输出是大写C或者F,所以针对第一位字符做判断

C = (eval(TempStr[1:]) - 32)/1.8    #TempStr[1:]表示字符串除首字符外的所有字符。

print("C{:.2f}".format(C))     #采用{:.2f}将输出数字变成两位小数点表示时,即使数学上该输出值是整数,也会按照小数方式输出,例如,转换后温度为10度,输出为10.00;

elif TempStr[0] in ['C']:    

F = 1.8*eval(TempStr[1:]) + 32    

print("F{:.2f}".format(F))

else:

print()      #不输入任何错误提示

Python写温度转化

我们都知道,现在通用的温度有2种,一种是 摄氏度 ,另一种是 华氏度 。

至于想要深入了解的小伙伴,给你们加上了链接:

摄氏度: 用符号 C表示,是世界上使用较为广泛的 温标 之一

网址:

华氏度: 符号 。华氏度 = 32+ 摄氏度 1.8

网址:

第一步: 先用input()输入当时的温度

第二步: 判断输入温度的类型,如果是华氏度F的话,(可以大小写)执行计算:

摄氏度=(华氏度-32)/18

这里的 TempStr[-1] 是指最后一个字符串在F/f判断是华氏度。 TempStr[0:-1] 取的是数值,用

eval() 函数,使得这些数值可以被计算出来。从而使得该公式可以计算赋值给变量C。

print("转换后的温度是{:.2f}C".format(C)), {:.2f} ,这里.2是使结果保留2位小数,f在.format(C)中展示,带上单位C。就完成打印。

第三步: 华氏度转成摄氏度

这是华氏度转化摄氏度的,下面摄氏度转化华氏度是同样的方法。

以下是完整代码:

一个程序还是包含着挺多知识的, 保留2位小数,eval(),.format(),input(), 需要细看才好好理解。欢迎观看~

编写一个Python程序,循环输入7天温度,求平均温度。

python3代码如下:

把下面代码里的井号改成空格

l = []

for i in range(1, 8):

##l.append(float(input('第%d天:' % i)))

print('平均温度:', sum(l) / len(l))


文章名称:python温度梯度函数,python 梯度计算
浏览路径:http://pwwzsj.com/article/hcjhjp.html