如何从零开始学python_从零开始学Python【4】--numpy
原標題:從零開始學Python【4】--numpy
前面3期介紹完Python的基礎知識后,我們需要進入數據分析領域的Python實現,首先我們從Numpy模塊講起。該模塊主要有這幾個功能:數學領域的線性代數、傅里葉變換;統計學領域的統計計算、隨機數生成等。這里我們就針對統計里面的計算和隨機數生成作講解。
使用numpy構建矩陣
數組的創建可以使用numpy模塊中的array函數實現,一維數組只需要給array函數傳入一個列表或元組,二維數組則是傳入嵌套的列表或元組。具體舉例可知:
arr1和arr2為一維數組,arr3為二維數組,返回一個數組的行數和列數可使用shape方法,即
元素的獲取
使用索引的方式,查詢一維數組和二維數組的元素。一維數組的索引與列表、元組的索引完全一致,這里就不在贅述;二維數組的索引就稍微有點復雜,我們可以通過例子來說明:
print函數中的'n',目的用來換行,使打印出來的結果不顯得那么擁擠。
咦?報告,你最后一個返回的結果錯了,你不是要返回由第一行、第三行、第三列和第四列組成的2×2矩陣嗎?為什么是一個1×2的一維數組?如果像上面紅框中使用索引的話,將獲取【0,2】和【2,3】對應的兩個值。那該如何返回想要的2×2的矩陣呢?我們可以這樣寫:
數學函數
# 取絕對值
np.abs
np.fabs
# 算術平方根
np.sqrt
# 平方
np.square
# 指數
np.exp
# 對數
np.log2
np.log10
np.log(x,base)
# 符號函數(大于0的數返回1、小于0的數返回-1、0返回0值)
np.sign
# 向上取整
np.cell
# 向下取整
np.floor
# 返回最近的整數
np.rint
# 判斷是否缺失
np.isnan
# 判斷是否有限
np.isfinite
# 判斷是否無限
np.isinf
# 冪運算
np.power
# 余數
np.mod
統計函數
# 最大值
np.max
# 浮點型的最大值
np.fmax
# 最小值
np.mim
# 浮點型的最小值
np.fmin
# 求和
np.sum
# 均值
np.mean
# 標準差
np.std
# 方差
np.var
# 中位數
np.median
映射函數
apply_along_axis
apply_along_axis函數與R語言中的apply函數用法一致,可以針對某個軸的方向進行函數操作,同樣,而且在pandas模塊中的DataFrmae對象中,可以使用apply函數達到相同的效果。我們舉一個例子來說明一下apply_along_axis函數的應用:
隨機數生成
numpy模塊中的子模塊random提供了很多產生隨機數的方法,幫我們產生偽數據帶來了極大的方便,這里就介紹幾種常用的分布隨機數。有時候為了使每次產生的隨機數都相同,就需要設置固定的隨機種子,設置隨機種子可以調用seed函數實現。
離散分布
二項分布:在概率論和統計學中,二項分布是n個獨立的是/非試驗中成功的次數的離散概率分布,其中每次試驗的成功概率為p。
size參數可以用來控制生成的隨機數的形狀,r1就是一個10個長度的一維數組;r2就是一個3×5的矩陣。
泊松分布:該分布適合于描述單位時間(或空間)內隨機事件發生的次數。如某一服務設施在一定時間內到達的人數,電話交換機接到呼叫的次數,汽車站臺的候客人數,機器出現的故障數。
生成3列泊松分布的數據,lamda參數分別取10,50,20,表示單位時間內某件事發生的頻次。
連續分布
正態分布:該分布也成高斯分布,呈現兩頭低,中間高,左右對稱的倒鐘形狀,是連續分布中使用最頻繁的一種分布。
其他常用分布:
數據加載
numpy模塊還提供了讀取數據與寫數據的函數,方便我們將外部數據文件讀入到Python的工作環境中。這里推薦兩個讀數據的函數:
fname:指定外部文件的路徑
delimiter:指定文件中數據列的分隔符
skiprows:指定讀數時跳過的行數
skip_header:指定跳過首行
usecols:指定讀取的數據列
這里個人比較推薦使用genfromtxt函數進行外部數據的讀取。切記,loadtxt函數和genfromtxt函數讀入數據形成數組,故必須要求讀進來的數據一定是數值型數據,否則會報錯。
數據寫出
通過使用numpy模塊中的savetxt函數實現python數據的寫出,函數語法如下:
np .savetxt (fname ,X ,fmt ='%.18e',delimiter =' ',newline ='n',header ='',footer ='',comments ='# ')
fname:指定數據寫出的路徑
X:指定需要寫出的數據
fmt:指定輸出數據的格式,默認科學計算法
delimiter:指定數據列之間的分隔符,默認空格符
newline:指定新行的標識符,默認換行
header:指定輸出數據首行值
footer:指定輸出數據的末行值
comments:指定注釋符,默認“#”
今天我們的內容就介紹到這邊,歡迎大家拍磚。下期我們來聊聊Python數據框操作--pandas。
從零開始學Python系列:
每天進步一點點2015
學習與分享,取長補短,關注小號!
責任編輯:
總結
以上是生活随笔為你收集整理的如何从零开始学python_从零开始学Python【4】--numpy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果CMS V10 播放记录_苹果cms
- 下一篇: sql group by having用