數據分析(2)--numpy的函數用法

numpy中用很多常見的函數,如果使用的好,對我們的工作幫助是很大的,本篇我會拿其中一部分來做介紹

通用函數ufunc(universal function)

Numpy提供了許多通用函數,這些通用函數可以看做是以前通過Python計算的矢量化版本。
在numpy中提供了很多庫,這部分和math中的庫很像,可以簡單理解爲矢量預算的math

 1. abs / fabs   取絕對值
 2. ceil / floor 取整函數
 3. exp 取平方函數,也可以使用** 來代替
 4. log / log2 / log10 取對數函數
 5. modf  
    返回數值的小數部分與整數部分
    返回一個元組,元組中含有兩個元素(ndarray數組類型) 
    前面的(索引爲0)的元素包含的是小數值,後面的(索引爲1)的元素包含的是整數值。
 7. sin / sinh / cos / cosh 三角函數
 8. sqrt 開方運算函數

統計函數*

這部分是重點,無論在深度學習還是機器學習中,都經常用到 比如常見的場景:在運算的過程中,先計算圖像的均值,之後用圖像的像素點減去三個通道的均值,之後在做運算 可以使用mean做運算,當然也可以使用 [0,0,0]或者[128,128,128]等
Numpy(或數組對象)具有如下常用的統計函數。

* mean / sum  sum計算pr曲線的使用統計正確率是很常見的操作
* max / min  計算最大值和最小值
* argmax / argmin  返回最大值和最小值的索引,在實際應用過程中通常用作嵌套使用
* std / var 標準差和方差
* cumsum / cumprod 求累積和累積乘積 

軸(axis)

可以指定axis參數來改變統計的軸。axis是一個非常重要的參數,關於數組的很多操作與運算,都涉及該參數。軸的取值爲0,1,2……其中0表示最高的維度,1表示次高的維度,以此類推。同時,軸也可以爲負值,表示倒數第n個維度,例如,-1表示最後(低)一個維度。在二維數組中,0表示沿着豎直方向進行操作,1表示沿着水平方向進行操作。在多維數組中,軸相對複雜一些,可以認爲,是沿着軸所指定的下標變化的方向,進行操作。例如,如果軸是1,則根據第1個下標變化的方向上進行操作。

隨機函數

這個方法很重要,在聚類過程中,如果計算所有簇之間的聚類計算量是巨大的,可以使用隨機選擇簇心,或者計算簇心來進行簇間操作

* np.random.rand 參數爲多個參數共同決定
* np.random.random 與rand相同,但是形狀通過一個參數(元組)指定。
* np.random.randn 常用於深度學習的構建神經網絡產生隨機正太分佈的數值
* np.random.normal 可以自定義均值和標準差的標準正太分佈
* np.random.randint 在給定起點和終點差生隨機整數值
* np.random.seed
* np.random.shuffle
* np.random.uniform

連接與拆分函數

* np.concatenate 對多個數組按指定軸的方向進行連接。 通常應用爲多個numpy文件的合併 例如特徵文件
* np.vstack / np.hstack    axis =0 
* np.split / np.hsplit / np.vsplit  axis = 1

其他函數(方法)

* any / all
* transpose(T) 矩陣轉置
* swapaxis
* dot(@)  一種特殊的運算方法,表示相同位置做懲罰之後相加
* sort / np.sort
* unique
* np.where 搜索是否有包含的符合條件的值
* np.save / np.load  保存和加載numpy數據 默認爲二進制
* np.savetxt / np.loadtxt 可以指定保存文件的格式

說明:

  • sort可以指定排序的軸。
  • save在保存數組時,如果沒有指定擴展名,則自定補充.npy作爲擴展名。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章