這篇文章主要介紹了Python中計算三角函數(shù)之cos()方法的使用簡介,是Python入門的基礎(chǔ)知識,需要的朋友可以參考下
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了冷水灘免費建站歡迎大家使用!
cos()方法返回x弧度的余弦值。
語法
以下是cos()方法的語法:
cos(x)
注意:此函數(shù)是無法直接訪問的,所以我們需要導(dǎo)入math模塊,然后需要用math的靜態(tài)對象來調(diào)用這個函數(shù)。
參數(shù)
x
--
這必須是一個數(shù)值
返回值
此方法返回-1
到
1之間的數(shù)值,它表示角度的余弦值
例子
下面的例子展示cos()方法的使用
?
1
2
3
4
5
6
7
8#!/usr/bin/python
import
math
"cos(3)
:
",
math.cos(3)
"cos(-3)
:
",
math.cos(-3)
"cos(0)
:
",
math.cos(0)
"cos(math.pi)
:
",
math.cos(math.pi)
"cos(2*math.pi)
:
",
math.cos(2*math.pi)
當(dāng)我們運行上面的程序,它會產(chǎn)生以下結(jié)果:
?
1
2
3
4
5cos(3)
:
-0.9899924966
cos(-3)
:
-0.9899924966
cos(0)
:
1.0
cos(math.pi)
:
-1.0
cos(2*math.pi)
:
1.0
在python中,有一個math module,你可以import math,里面有math.sin(), math.cos(), math.asin()和math.acos()四個函數(shù)。相信你也知道asin和acos的意思,就是arcsin和arccos。有了這四個函數(shù)你就可以求函數(shù)值和角度了。但是要注意括號里面填的數(shù)值,要用弧度制。
Python的三角函數(shù)sin(),輸入?yún)?shù)必須是弧度,所以要把角度變換為弧度
import math
# .... 輸入度數(shù)到 degrees 變量....
# 例子里用 30度計算
degrees=30
radians = degrees * math.pi / 180.0
value = round( math.sin(radians), 4)
print(value)
對于氣象繪圖來講,第一步是對數(shù)據(jù)的處理,通過各類公式,或者統(tǒng)計方法將原始數(shù)據(jù)處理為目標(biāo)數(shù)據(jù)。
按照氣象統(tǒng)計課程的內(nèi)容,我給出了一些常用到的統(tǒng)計方法的對應(yīng)函數(shù):
在計算氣候態(tài),區(qū)域平均時均要使用到求均值函數(shù),對應(yīng)NCL中的dim_average函數(shù),在python中通常使用np.mean()函數(shù)
numpy.mean(a, axis, dtype)
假設(shè)a為[time,lat,lon]的數(shù)據(jù),那么
需要特別注意的是,氣象數(shù)據(jù)中常有缺測,在NCL中,使用求均值函數(shù)會自動略過,而在python中,當(dāng)任意一數(shù)與缺測(np.nan)計算的結(jié)果均為np.nan,比如求[1,2,3,4,np.nan]的平均值,結(jié)果為np.nan
因此,當(dāng)數(shù)據(jù)存在缺測數(shù)據(jù)時,通常使用np.nanmean()函數(shù),用法同上,此時[1,2,3,4,np.nan]的平均值為(1+2+3+4)/4 = 2.5
同樣的,求某數(shù)組最大最小值時也有np.nanmax(), np.nanmin()函數(shù)來補充np.max(), np.min()的不足。
其他很多np的計算函數(shù)也可以通過在前邊加‘nan’來使用。
另外,
也可以直接將a中缺失值全部填充為0。
np.std(a, axis, dtype)
用法同np.mean()
在NCL中有直接求數(shù)據(jù)標(biāo)準(zhǔn)化的函數(shù)dim_standardize()
其實也就是一行的事,根據(jù)需要指定維度即可。
皮爾遜相關(guān)系數(shù):
相關(guān)可以說是氣象科研中最常用的方法之一了,numpy函數(shù)中的np.corrcoef(x, y)就可以實現(xiàn)相關(guān)計算。但是在這里我推薦scipy.stats中的函數(shù)來計算相關(guān)系數(shù):
這個函數(shù)缺點和有點都很明顯,優(yōu)點是可以直接返回相關(guān)系數(shù)R及其P值,這避免了我們進(jìn)一步計算置信度。而缺點則是該函數(shù)只支持兩個一維數(shù)組的計算,也就是說當(dāng)我們需要計算一個場和一個序列的相關(guān)時,我們需要循環(huán)來實現(xiàn)。
其中a[time,lat,lon],b[time]
(NCL中為regcoef()函數(shù))
同樣推薦Scipy庫中的stats.linregress(x,y)函數(shù):
slop: 回歸斜率
intercept:回歸截距
r_value: 相關(guān)系數(shù)
p_value: P值
std_err: 估計標(biāo)準(zhǔn)誤差
直接可以輸出P值,同樣省去了做置信度檢驗的過程,遺憾的是仍需同相關(guān)系數(shù)一樣循環(huán)計算。