1. 程式人生 > >數據分析之Numpy模塊下

數據分析之Numpy模塊下

維數 fun mat height 數據 -s script statistic 參數

三、ndarray的基本操作下部

5.切分

  1. 與級聯類似,三個函數完成切分工作:

    np.split(arr, 行/列號 ,軸):參數2是一個列表類型

    np.vsplit  行切分

    np.hsplit  列切分

  示例:

  創建一個二維數組
    np.random.seed(10)
    num_arr = np.random.randint(60,100,size=(5,6))
    num_arr
  結果:
    array([[69, 96, 75, 60, 88, 85],
           [89, 89, 68, 69, 60, 96],
           [
76, 96, 71, 84, 93, 68],     [96, 74, 73, 65, 73, 85],     [73, 88, 82, 90, 90, 85]])   根據索引去切片,0 表示行著切,1表示豎著切,[2,3]表示在索引為2和索引為3的時候個切一次   行著切:     np.split(num_arr,[2,3],axis=0)   結果:     [array([[69, 96, 75, 60, 88, 85],      [89, 89, 68, 69, 60, 96]]),     array([[76, 96, 71, 84, 93
, 68]]),     array([[96, 74, 73, 65, 73, 85],     [73, 88, 82, 90, 90, 85]])]   豎著切:     np.split(num_arr,[1,3],axis=1)   結果:     [array([[69],      [89],      [76],      [96],      [73]]), array([[96, 75],      [89, 68],      [96, 71],      [
74, 73],     [88, 82]]), array([[60, 88, 85],      [69, 60, 96],      [84, 93, 68],      [65, 73, 85],      [90, 90, 85]])]

    2.切分照片

      導入一張照片
      # 導入matplotlib.pyplot,並起別名為plt
      import matplotlib.pyplot as plt
      img_arr = plt.imread(./cat.jpg)
      plt.imshow(img_arr)

    結果:

       技術分享圖片

     2.1 行切分

    # axis為0的時候,表示行切分
    imgs = np.split(img_arr,[50,350],axis=0)
    plt.imshow(imgs[1])

      結果:

        技術分享圖片

     2.2 列切分   

    imgs = np.split(img_arr,[100,600],axis=1)
    plt.imshow(imgs[1])

     結果:

        技術分享圖片

6.副本

  所有賦值運算不會為ndarray的任何元素創建副本。對賦值後的對象的操作也對原來的對象生效。

  可使用copy()函數創建副本

    arr = np.array([1,2,3,4,5,6])
    arr1 = arr.copy()

四、ndarray的聚合操作

  1. 求和np.sum() 

  2. 最大最小值:np.max() / np.min()

  3.平均值:np.mean()

  創建一個二維數組
  np.random.seed(10)
  arr = np.random.randint(1,50,size=(3,4))
  arr
  求和     arr.sum()   最大值     arr.max()   最小值     arr.min()   平均值     arr.mean()

  4.其他聚合操作

  Function Name    NaN-safe Version    Description
  np.sum    np.nansum    Compute sum of elements
  np.prod    np.nanprod    Compute product of elements
  np.mean    np.nanmean    Compute mean of elements
  np.std    np.nanstd    Compute standard deviation
  np.var    np.nanvar    Compute variance
  np.min    np.nanmin    Find minimum value
  np.max    np.nanmax    Find maximum value
  np.argmin    np.nanargmin    Find index of minimum value
  np.argmax    np.nanargmax    Find index of maximum value
  np.median    np.nanmedian    Compute median of elements
  np.percentile    np.nanpercentile    Compute rank-based statistics of elements
  np.any    N/A    Evaluate whether any elements are true
  np.all    N/A    Evaluate whether all elements are true
  np.power 冪運算

五、廣播機制

 

【重要】ndarray廣播機制的三條規則:缺失維度的數組將維度補充為進行運算的數組的維度。

                 缺失的數組元素使用已有元素進行補充。

  • 規則一:為缺失的維度補1(進行運算的兩個數組之間的維度只能相差一個維度)
  • 規則二:缺失元素用已有值填充
  • 規則三:缺失維度的數組只能有一行或者一列

示例1:

  技術分享圖片

示例二:

   技術分享圖片

示例三

  技術分享圖片

六、ndarray的排序

  1. 快速排序

    np.sort()與ndarray.sort()都可以,但有區別:

      np.sort()不改變輸入

      ndarray.sort()本地處理,不占用空間,但改變輸入

    示例:

      技術分享圖片

  2.部分排序 np.partition(a,k)

    有的時候我們不是對全部數據感興趣,我們可能只對最小或最大的一部分感興趣。

    當k為正時,我們想要得到最小的k個數 當k為負時,我們m想要得到最大的k個數

    示例:

       技術分享圖片

數據分析之Numpy模塊下