Numpy 之常見用法及函數

numpy

一、概念

  1. 數組事numpy 的最基本數據對象,也是一種大容量數據容器

  2. 矢量化運算,基本代替for 語句,大大提高運算速度

  3. 空值處理

    • 空值處於離散數據列,必須把空值所在行刪除

    • 空值處在連續數據列,考慮對空值進行補值

      1. 補值方法

          1. 就近補值

          2. 平均值,中位數,衆數

          3. 隨機補值

          1. lagrange 補值

          2. EM補值

          3. 迴歸法補值

          4. 牛頓法補值

  4. 離散數據和連續數據

    • 離散數據

      1. 包括名目數據 或是順序數據

      2. 描述事物的數據,表明事物屬性,

      3. 名目數據無法估值

    • 連續數據

      1. 包括區間數據和等比數據

      2. 區間數據:溫度,壓強,時間等

      3. 等比數據:有自然0點 的數據,身高體重等

二、操作

  1. 創建

    • 基本創建

      numpy.array(數組,dtype = 指定數據類型)

    • 指定外形創建隨機數

      numpy.array(range(1,101)).reshape(10,10)

      注意:reshape 的兩個參數 的乘積必須等於前面數據中數據的個數!!!!!!!!!

    • arange

      np.arange(2,25,2).shape(3,4)

    • random

      numpy.array(random.randint(1,100,(3,3)))

    • 特殊數組

      1. np.zeros((5,5)) :0數組

      2. np.ones((5,5)) : 1數組

      3. np.empty((5,5)):並不是無值的空

      4. np.identity(6):單位數組創建

    • 模仿現有數組外形的特殊數組

      1. empty_like,ons_likes.zeros_likes

        Np.ones(data)

  2. 查看

    • dtype:查看數組中數據的數據類型

    • astype:強制轉類型

    • shape:查看數組的外形,數組形式返回

    • ndim : 返回數組維度

  3. 選區/切片

    • 數組的切片稱爲選區

    • 與列表的區別:

      1. 都是左閉右開

      2. 廣播功能:利用切片和選區進行獲取數據,賦值給新的變量;新的變量值改變,原列表數據不會變化,而選區後的原數組會變化,可以利用copy 對原數據的備份數據進行選區

    • [a:b,c:d] a,b 選行 / c,d 選列

    • 選區賦值:

      1. 列表賦值

        arr123 [1:3,1:3]=[[-2,-4],[-8,-1]] #注意這裏必須是嵌套列表

      2. 元組賦值

        arr123[1:3,1:3]=((0,0),(-1,-1))

      3. 數組賦值

        arr123[1:3,1:3]=np.array([[-2,-2],[-8,-8]])

      4. 單元素賦值

        arr123[1:3,1:3]=0

  4. 花式索引

    • 針對多維數據進行精確查找

    • 返回索引結果數組

    • 基本形式:數組[ [ ] ,[ ] ]

      第一個中括號裏的整數索引碼與第二個中括號裏的整數索引碼一起構成了一系列索引座標,通過這些索引座標可以實現精確查找。

  5. numpy的函數

    • np_data.T : 二維數組轉置

    • transpose :高緯矩陣轉置

      1. 按照軸號位置的變化而變化

      2. 沒有轉置前的高維數組軸編號順序總是爲:(0,1,2...)。通過transpose函數可以把未轉置的數組軸編號佈局(0,1,2...)轉換到transpose參數指定的軸編號佈局。

      3. 在完成轉置後,原矩陣的外形和矩陣的矩陣中元素分佈都將會隨着軸編號佈局的變化而變化。

    • np.dot (np_data1,np_data2) : 兩個矩陣的點積

    • np.trace(np_data) :矩陣對角線之和(矩陣必須是方陣)

    • np.linspace(-2,2,400):

      指定作用域,創建數組,範圍-2到2,400百份

  6. 一次函數

    • np.sqrt (np_data ): 開方函數

    • np.exp 函數

    • np.abs 絕對值函數

    • 取整數

      1. 向下取整數

        np.floor(np_data)

      2. 向上取整

        np.ceil(np_data)

  7. 二次函數

    • np.maximum 比較兩個數組,保留大數字

    • np.add,Subtract,Multiply,devide:對數組進行加減乘除

    • np.power(np_data1,np_data2)

      次方:np_data1是底,np_data2是冪

    • np.meshgrid() :

      1. 讓數組之間進行網格化交點

      2. 一般用作畫圖

    • 拼接:

      1. np.column_stack((a,b)): 將a,b 兩個一維數組,以列的形式組合

  8. 數據快速挑選函數

    • 用np.where 快速挑選函數

    • np.where(condition,[x,y])

      如果滿足條件,返回x,否則返回y

      1. 條件單bool值

      2. bool矩陣

  9. 基本統計函數

    • 方差和標準差(var,std)

    • Sum(和),mean(平均值),min(小),max(大) 函數

      1. 作爲方法:np_data.sum( axis = )

        • 將數組以行/列(0/1)形式求和,返回結果數組

        • axis = 0 逐行按列

      2. 作爲函數:np.sum(np_data,axis = )

    • argmin/argmax函數

      1. 返回數組中最小值和最大值的索引

    • cumsum(所有元素的累積和)cumprod(所有元素的累積積)

      1. 可以指定行和列

  10. 常用bool數組方法,數據排序和去重

    • sum:sum()函數可以統計bool_ar中的True的數量

    • all和any方法 :

      1. any()說明數組裏有true,

      2. all()檢驗數組是不是全是true

      3. 可用於檢驗是否存在特徵數據

    • 排序sort(axis)

      注意::sort用作函數(np.sort)是一次性排序,用做方法(.sort)是永久性排序

    • 去重

      up.unique()

    • 刪除

    • Up.delete()

       

     

     

     

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章