導航:首頁 > 編程語言 > python變數對數轉換

python變數對數轉換

發布時間:2023-03-08 12:35:17

1. python數據分析(八):農糧組織數據集探索性分析(EDA)

這里我們用 FAO(Food and Agriculture Organization) 組織提供的數據集,練習一下如何利用python進行探索性數據分析。

我們先導入需要用到的包

接下來,載入數據集

看一下數據量,

看一下數據的信息,

我們先來看一下variable,variable_full這兩列的信息,

看一下統計了多少國家,

看一下有多少個時間周期,

看一下時間周期有哪些,

我們看一下某一列某個指標的缺失值的個數,比如variable是total_area時缺失值的個數,

我們通過幾個維度來進行數據的分析:

我們按照上面的處理繼續,現在我們想統計一下對於一個時間周期來說,不同國家在這個周期內的變化情況,

我們也可以按照國家分類,查看某個國家在不同時期的變化,

我們還可以根據屬性,查看不同國家在不同周期內的變化情況,

我們還可以給定國家和指標,查看這個國家在這個指標上的變化情況,

我們還有region(區域)沒有查看,我們來看一下:

通過上圖可以看出,區域太多,不便於觀察,我們可以將一些區域進行合並。減少區域數量有助於模型評估,可以創建一個字典來查找新的,更簡單的區域(亞洲,北美洲,南美洲,大洋洲)

我們來看一下數據變化,

緊接著上面的數據處理,我們重新導入一下包,這次有一些新包,

我們看一下水資源的情況,

通過上圖可以看出只有一小部分國家報告了可利用的水資源總量,這些國家中只有極少數國家擁有最近一段時間的數據,我們將刪除變數,因為這么少的數據點會導致很多問題。

接下來我們看一下全國降雨指數,

全國降雨在2002年以後不再報到,所以我們也刪除這個數據,

我們單獨拿出一個洲來進行分析,舉例南美洲,我們來看一下數據的完整性,

我們也可以指定不同的指標,

接下來,我們使用 pandas_profiling 來對單變數以及多變數之間的關系進行統計一下,

這里我們要計算的是,比如

我們按照 rural_pop 從小到大進行排序,發現的確有幾個國家的農村人口是負數,

人口數目是不可能小於0,所以這說明數據有問題,存在臟數據,如果做分析預測時,要注意將這些臟數據處理一下。

接下來我們看一下偏度,我們規定,

正態分布的偏度應為零,負偏度表示左偏,正偏表示右偏。

偏度計算完後,我們計算一下峰度, 峰度也是一個正態分布,峰度不能為負,只能是正數 ,越大說明越陡峭,

接下來我們看一下,如果數據分布非常不均勻該怎麼辦呢,

上圖是2013-2017年國家總人數的分布,通過上圖我們發現,人口量少於200000(不考慮單位)的國家非常多,人口大於1200000的國家非常少,如果我們需要建模的話,這種數據我們是不能要的。這個時候我們應該怎麼辦呢?

通常,遇到這種情況,使用 log變換 將其變為正常。 對數變換 是數據變換的一種常用方式,數據變換的目的在於使數據的呈現方式接近我們所希望的前提假設,從而更好的進行統計推斷。

接下來,我們用log轉換一下,並看一下它的偏度和峰值,

可以看出偏度下降了很多,減少了傾斜。

可以發現峰度也下降了,接下來我們看一下經過log轉換後的數據分布,

雖然數據還有一些偏度,但是明顯好了很多,呈現的分布也比較標准。

首先我們先來看一下美國的人口總數隨時間的變化,

接下來,我們查看北美洲每個國家人口總數隨著時間的變化,

這個時候我們發現,一些國家由於人口數量本身就少,所以整個圖像顯示的不明顯,我們可以改變一下參照指標,那我們通過什麼標准化?我們可以選擇一個國家的最小、平均、中位數、最大值...或任何其他位置。那我們選擇最小值,這樣我們就能看到每個國家的起始人口上的增長。

我們也可以用熱度圖來展示,用顏色的深淺來比較大小關系,

接下來我們分析一下水資源的分布情況,

我們可以進行一下log轉換,

我們用熱度圖畫一下,

連續值可以畫成散點圖,方便觀看,
我們來看一下隨著季節變化,人均GDP的變化情況,

相關程度:
相關度量兩個變數之間的線性關系的強度,我們可以用相關性來識別變數。

現在我們單獨拿出來一個指標分析是什麼因素與人均GDP的變化有關系,正相關就是積極影響,負相關就是消極影響。

當我們在畫圖的時候也可以考慮一下利用bined設置一下區間,比如說連續值我們可以分成幾個區間進行分析,這里我們以人均GDP的數量來進行分析,我們可以將人均GDP的數據映射到不同的區間,比如人均GDP比較低,比較落後的國家,以及人均GDP比較高,比較發達的國家,這個也是我們經常需要的操作,

做一下log變換,這里是25個bin

我們指定一下分割的標准,

我們還可以看一下人均GDP較低,落後國家的內部數據,下面我們看一下內部數據分布情況,用boxplot進行畫圖,

對於這部分的分布,我們還可以統計看一下其他指標,如下圖所示,我們還可以看一下洪水的統計信息,

2. 用python編寫:輸入n對數,輸出其中max與min。

a = input()
max(a)
min(a)
第一行注意下輸入的格式和類型。
python裡面自帶max和min方法。不用再去對元組或列表進行排序,找最大值最小值

3. python中提供的數據類型轉換函數有哪些,作用是什麼

作用就是把合理的數據轉換為需要的類型。int()整數,float()浮點數,str()字元串,list()列表,tuple()元組,set()集合……
比如a='12'這個是字元串類型,用int函數a=int(a)這時變數a就是整型,字元串'12'變為了整數12。Python沒有變數聲明的要求,變數的屬性在賦值時確定,這樣變數的類型就很靈活。
有一種題目判斷一個整數是否迴文數,用字元串來處理就很簡單
a=1234321#整數
if str(a)==str(a)[::-1]:#藉助字元串反轉比較就可以確定是否迴文數。
還比如元組b=(1,3,2,4),元組是不可以更新刪除排序成員的,但是列表是可以的,通過列表函數進行轉換來實現元組的更新刪除和排序。
b=(1,3,2,4)
b=list(b)
b.sort()
b=tuple(b)
這時得到的元組b就是一個升序的元組(1,2,3,4)
再比如你要輸入創建整數列表或者整數元組基本上寫法相同,就是用對應的函數來最後處理。
ls=list(map(int,input().split()))#這個就是列表
tup=tuple(map(int,input().split()))#這個就是元組
再比如有個叫集合的,集合有唯一性,可以方便用來去重。
ls=[1,2,3,1,2,3,1,2,3]
ls=list(set(ls))#通過set()去重後,現在的ls里就是[1,2,3]去重後的列表。

4. Python中如何對series里所有的值取對數

以後應多使用論壇中的Eviews專區。
ln在Eviews中表示為log,如數學中的ln(Q)在Eviews中表示為log(Q)
直接定義啊 y=log(x) 在軟體中log,論文模型中ln不用取對數直接在估計的時候用 log( )就好了
如果真要取的話
quick\ generate series\
輸入新變數,比如 r=log( )
r就是取完對數後的序列
在工作文件中先定義一個新的變數Y(假設原變數是w,已存在的變數),然後在工作文件中點擊genr,在方程中輸入Y=log(w),確定。
series y=log(x)
在最小二乘裡面輸入log(y) log(x) c也可以
產生個新變數:輸入命令y=log()

5. 如何在PYTHON 中寫一個函數交換兩個變數的值

python交換兩個變數的值很簡單,a,b = b,a 就可以,寫成函數,代碼如下:

defjh(a,b):
returnb,a

x=1
y=2
x,y=jh(x,y)
print(x,y)

執行結果如下:

6. python如何對矩陣里的元素按照正負號取對數

import math
martix=[[1,2,-3],[-4,5,6],[7,-8,9]]

result=[[abs(x)//x*math.log(x if x>0 else -x,2) for x in row ] for row in martix]

print(result)

閱讀全文

與python變數對數轉換相關的資料

熱點內容
Java實現sha 瀏覽:525
購物車java代碼 瀏覽:314
windows多核編程 瀏覽:607
股旁網選股指標公式源碼 瀏覽:856
python運維管理工具 瀏覽:453
功率分配演算法 瀏覽:489
錢豆豆app可以做什麼 瀏覽:194
騰訊雲伺服器還需要資料庫嗎 瀏覽:767
比較器編程 瀏覽:738
蘋果賞金賽和平精英是什麼app 瀏覽:986
idea查找項目所在文件夾 瀏覽:163
程序員的電腦硬碟清理 瀏覽:686
安卓手機照片太多內存不夠怎麼辦 瀏覽:959
施工命令號 瀏覽:59
javajpgtiff 瀏覽:872
忻奇醫用靜脈曲張壓縮襪 瀏覽:896
寧國壓縮泡沫板 瀏覽:959
速8屬於什麼app 瀏覽:607
小米8手機照片視頻文件夾 瀏覽:720
現代製造技術pdf 瀏覽:656