對(duì)于氣象繪圖來講,第一步是對(duì)數(shù)據(jù)的處理,通過各類公式,或者統(tǒng)計(jì)方法將原始數(shù)據(jù)處理為目標(biāo)數(shù)據(jù)。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比莫力達(dá)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式莫力達(dá)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋莫力達(dá)地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
按照氣象統(tǒng)計(jì)課程的內(nèi)容,我給出了一些常用到的統(tǒng)計(jì)方法的對(duì)應(yīng)函數(shù):
在計(jì)算氣候態(tài),區(qū)域平均時(shí)均要使用到求均值函數(shù),對(duì)應(yīng)NCL中的dim_average函數(shù),在python中通常使用np.mean()函數(shù)
numpy.mean(a, axis, dtype)
假設(shè)a為[time,lat,lon]的數(shù)據(jù),那么
需要特別注意的是,氣象數(shù)據(jù)中常有缺測(cè),在NCL中,使用求均值函數(shù)會(huì)自動(dòng)略過,而在python中,當(dāng)任意一數(shù)與缺測(cè)(np.nan)計(jì)算的結(jié)果均為np.nan,比如求[1,2,3,4,np.nan]的平均值,結(jié)果為np.nan
因此,當(dāng)數(shù)據(jù)存在缺測(cè)數(shù)據(jù)時(shí),通常使用np.nanmean()函數(shù),用法同上,此時(shí)[1,2,3,4,np.nan]的平均值為(1+2+3+4)/4 = 2.5
同樣的,求某數(shù)組最大最小值時(shí)也有np.nanmax(), np.nanmin()函數(shù)來補(bǔ)充np.max(), np.min()的不足。
其他很多np的計(jì)算函數(shù)也可以通過在前邊加‘nan’來使用。
另外,
也可以直接將a中缺失值全部填充為0。
np.std(a, axis, dtype)
用法同np.mean()
在NCL中有直接求數(shù)據(jù)標(biāo)準(zhǔn)化的函數(shù)dim_standardize()
其實(shí)也就是一行的事,根據(jù)需要指定維度即可。
皮爾遜相關(guān)系數(shù):
相關(guān)可以說是氣象科研中最常用的方法之一了,numpy函數(shù)中的np.corrcoef(x, y)就可以實(shí)現(xiàn)相關(guān)計(jì)算。但是在這里我推薦scipy.stats中的函數(shù)來計(jì)算相關(guān)系數(shù):
這個(gè)函數(shù)缺點(diǎn)和有點(diǎn)都很明顯,優(yōu)點(diǎn)是可以直接返回相關(guān)系數(shù)R及其P值,這避免了我們進(jìn)一步計(jì)算置信度。而缺點(diǎn)則是該函數(shù)只支持兩個(gè)一維數(shù)組的計(jì)算,也就是說當(dāng)我們需要計(jì)算一個(gè)場(chǎng)和一個(gè)序列的相關(guān)時(shí),我們需要循環(huán)來實(shí)現(xiàn)。
其中a[time,lat,lon],b[time]
(NCL中為regcoef()函數(shù))
同樣推薦Scipy庫(kù)中的stats.linregress(x,y)函數(shù):
slop: 回歸斜率
intercept:回歸截距
r_value: 相關(guān)系數(shù)
p_value: P值
std_err: 估計(jì)標(biāo)準(zhǔn)誤差
直接可以輸出P值,同樣省去了做置信度檢驗(yàn)的過程,遺憾的是仍需同相關(guān)系數(shù)一樣循環(huán)計(jì)算。
python中的pow函數(shù)的功能是計(jì)算x的y次冪。
math模塊pow()方法的語(yǔ)法:
import math
math.pow( x, y )
內(nèi)置的pow()方法:
pow(x, y[, z])
函數(shù)是計(jì)算x的y次方,如果z在存在,則再對(duì)結(jié)果進(jìn)行取模,其結(jié)果等效于pow(x,y) %z。
注意:pow()通過內(nèi)置的方法直接調(diào)用,內(nèi)置方法會(huì)把參數(shù)作為整型,而math模塊則會(huì)把參數(shù)轉(zhuǎn)換為float。
參數(shù):x --數(shù)值表達(dá)式。y --數(shù)值表達(dá)式。z --數(shù)值表達(dá)式。
返回值:返回xy(x的y次方)的值。
以下展示了使用pow()方法的實(shí)例:
一、在命令行中的使用
1、pow(x,y):這個(gè)是表示x的y次冪。
pow(2,4)
16
2、pow(x,y,z):這個(gè)是表示x的y次冪后除以z的余數(shù)。
pow(2,4,5)
1
二、在IDE中的使用
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math #導(dǎo)入math模塊
print "math.pow(100, 2) : ", math.pow(100, 2)
#使用內(nèi)置,查看輸出結(jié)果區(qū)別
print "pow(100, 2) : ", pow(100, 2)
print "math.pow(100, -2) : ", math.pow(100, -2)
print "math.pow(2, 4) : ", math.pow(2, 4)
print "math.pow(3, 0) : ", math.pow(3, 0)
在寫python程序時(shí),常能用到一些函數(shù)和方法,總結(jié)一下,保存起來,方便查詢。
一、內(nèi)置函數(shù)
# abs()獲取數(shù)字絕對(duì)值
# chr(i)數(shù)字轉(zhuǎn)換為字符類型
# divmod() 獲取兩個(gè)數(shù)值的商和余數(shù)
# enumerate() 將可遍歷序列組合為索引序列
# float()轉(zhuǎn)換為浮點(diǎn)數(shù)
# format() 格式化字符串
# int()轉(zhuǎn)換為整數(shù)?
# input() 接受用戶輸入內(nèi)容
# len() 計(jì)算元素個(gè)數(shù)
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定數(shù)值的上舍整數(shù)
# open()打開文件并返回文件對(duì)象
# pow() 冪運(yùn)算
# print()打印輸出?
# range() 生成器
# reversed()反轉(zhuǎn)所有元素
# round()四舍五入求值
# sorted()對(duì)可迭代對(duì)象進(jìn)行排序?
# str() 轉(zhuǎn)換為字符串
# sum() 求和
# set() 創(chuàng)建集合
# tuple() 將序列轉(zhuǎn)換為元組
# zip()將可迭代對(duì)象打包成元組
二、方法
# append() 添加列表元素
# capitalize()首字母轉(zhuǎn)換為大寫?
# count()字符出現(xiàn)次數(shù)
# close() 關(guān)閉文件
# decode() 解碼字符串
# dict.keys() 獲取字典所有的鍵
# find()字符串首次出現(xiàn)的索引
# f.read() 讀取文件內(nèi)容
# dict.update()更新字典
# dict.items() 獲取字典鍵/值對(duì)
# dict.get() 返回指定鍵的值
# encode() 編碼字符串
# list.sort() 排序列表元素
# index() 元素首次出現(xiàn)的索引
# isdigit() 判斷字符串是否只由數(shù)字組成
# isupper() 是否所有字母都為大寫
# isnum() 判斷字符串是否由字母和數(shù)字組成
# islower() 是否所有字母都為小寫
# isdecimal() 檢查字符串是否只包含十進(jìn)制字符
# isalpha() 檢測(cè)字符串是否為純字母
# random.shuffle()隨機(jī)排序
# random.sample()返回?zé)o重復(fù)隨機(jī)數(shù)列表
# random.choice() 返回一個(gè)隨機(jī)元素
# random.randint() 生成指定范圍的隨機(jī)整數(shù)
# random.randrange() 生成指定范圍的指定遞增基數(shù)隨機(jī)整數(shù)
# pop() 刪除列表中的元素
# remove()刪除列表中的指定元素
# strip()去除空格
# lstrip()去除左側(cè)空格
# rstrip() 去除右側(cè)空格
# readline() 讀取單行內(nèi)容
# root.after() Tkinter中等待一段時(shí)間后再執(zhí)行命令
# str.isnumeric() 驗(yàn)證字符串是否為數(shù)字(適用于Unicode)
# split()分割字符串
# ord() 將字符轉(zhuǎn)換為整數(shù)
# replace() 字符串替換
# ljust() 左對(duì)齊填充
# rjust() 左對(duì)齊填充
# readlines() 讀取所有行內(nèi)容
# datetime.datetime.now() 返回指定時(shí)區(qū)的本地日期時(shí)間
# datetime.datetime.today() 獲取當(dāng)前本地日期的date對(duì)象
# datetime.utcnow() 返回當(dāng)前UTC時(shí)間的datetime對(duì)象
# time.strptime()把時(shí)間字符串解析為元組
# time.time()返回當(dāng)前時(shí)間的時(shí)間戳
# time.sleep()暫停指定秒數(shù)
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收時(shí)間元組并返回時(shí)間戳
# os.getcwd() 獲取當(dāng)前工作目錄
# os.listdir() 獲取指定路徑下的目錄和文件列表
# os.makedirs() 遞歸創(chuàng)建目錄
# os.rename() 重命名目錄或文件
# os.path.exists() 判斷路徑是否存在
# upper() 全部轉(zhuǎn)換為大寫字母
# lower()? 全部轉(zhuǎn)換為小寫字母
# sys.stdout.write() 標(biāo)準(zhǔn)輸出打印
# sys.stdout.flush()刷新輸出?
# shutil.copy() 復(fù)制單個(gè)文件到另一文件或目錄
# write() 寫入文件內(nèi)容
# winsound.Beep() 打開電腦揚(yáng)聲器
# zfill() 在字符串前面填充0
三、循環(huán)語(yǔ)句
# break終止當(dāng)前循環(huán)
# continue 終止本循環(huán)進(jìn)入下一次循環(huán)
# with open() as file 以with語(yǔ)句打開文件(數(shù)據(jù)保存)
四、轉(zhuǎn)義字符
\ 行尾續(xù)行符
\' 單引號(hào)?
\'' 雙引號(hào)
\a 響鈴
\e 轉(zhuǎn)義
\n 換行
\t 橫向制表符
\f 換頁(yè)
\xyy 十六進(jìn)制yy代表的字符
\\反斜杠符號(hào)
\b 退格
\000 空
\v 縱向制表符
\r 回車
\0yy 八進(jìn)制yy代表的字符
\other 其他的字符以普通格式輸出
首先,定義一個(gè)數(shù)組,保存求和的所有整數(shù)。
輸入求和的整數(shù)個(gè)數(shù),保存在變量n中。
用for循環(huán),控制輸入所有的求和整數(shù)。
輸入所有的求和整數(shù),保存在數(shù)組中。
輸出所有求和的整數(shù),如下圖所示。
調(diào)用sum函數(shù),計(jì)算所有整數(shù)的和。
最后,輸出計(jì)算得到的所有整數(shù)和。
輸出結(jié)果如下:
推薦教程:python教程以上就是小編分享的關(guān)于python如何用sum函數(shù)求和的詳細(xì)內(nèi)容希望對(duì)大家有所幫助,更多有關(guān)python教程請(qǐng)關(guān)注環(huán)球青藤其它相關(guān)文章!
網(wǎng)頁(yè)標(biāo)題:python函數(shù)計(jì)算方法,Python運(yùn)算函數(shù)
文章源于:http://chinadenli.net/article45/dsiphhi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站策劃、軟件開發(fā)、企業(yè)網(wǎng)站制作、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)