1. 程式人生 > >【情感分析】北航課題組 筆記二

【情感分析】北航課題組 筆記二

樣本 數學運算 ica 存儲 wid seed sci 進階 space

主講:莊老師

數據處理利器—— Numpy 簡介

  優點

    運算快

    封裝好

  數據存儲

    可存儲為一維數組、二維數組、多維數組

  

Numpy, Pandas, Scipy 的比較

  Numpy 主要以數值矩陣計算為主

  Pandas 基於 Numpy 的工具庫,常常用於表格數據處理,用來做數據分析

  Sci 也是基於 Numpy 的工具庫

python 科學計算進階圖

  技術分享圖片

Numpy 詳解

  屬性

    技術分享圖片

    

    數據類型 dtype:

      技術分享圖片

      數據類型之間的換算規律:

      技術分享圖片

  創建特定的數組:

    技術分享圖片

    代碼實現:

      # 產生 0 填充矩陣

      np.zeros(shape, dtype=float, order=‘C‘)  

        e.g. np.zeros((row , cul))

      # 定義一個直線型數組

        a.linspaces()      

        方法一:轉換到和目標矩陣一樣的shape
        np.tranpose(另一個矩陣的形狀)

        方法二:使用reshape
        註意 reshape 中“-1”的使用:
        >>> a = np.array([[1,2,3], [4,5,6]])
        >>> np.reshape(a, (3,-1)) # the unspecified value is inferred to be 2
        array([[1, 2],
        [3, 4],
        [5, 6]])
        -1表示我懶得計算該填什麽數字,由python通過a和其他的值3推測出來。# 下面是兩張2*3大小的照片(不知道有幾張照片用-1代替),如何把所有二維照片給攤平成一維
        >>> image = np.array([[[1,2,3], [4,5,6]], [[1,1,1], [1,1,1]]])
        >>> image.shape(2, 2, 3)
        >>> image.reshape((-1, 6))
        array([[1, 2, 3, 4, 5, 6],[1, 1, 1, 1, 1, 1]])

  維度與軸:

    通過 參數 axis 指定數組對應操作的軸,axis參數的用法如下

      axis=0 ,沿著縱軸進行操作
      axis=1,沿著橫軸進行操作

  合並與拆分:

    合並:

      c1 = np.vstack((a, b))  # 垂直方向上得合並 a 和 b,v 表示 vertical,意思是“垂直的"

      c2 = np.hstack((a, a))  # 水平方向上合並 a 和 a

      c3 = np.concatenate((a, b), axis=0)  # 在垂直方向上合並 a 和 b

    拆分:

    技術分享圖片

  索引和切片:

    索引:

      索引數組指定位置的元素: a[m, n]

    切片:

      對指定維度進行切片: a[m, :],a[:, n]

      指定任意範圍進行切片: a[m:n, p:q]

  基本數學運算與基本函數:

    基本數學運算:

      技術分享圖片

    基本函數:

      技術分享圖片

      技術分享圖片

  廣播(broadcasting)

    在進行數組之間元素時,會自動檢測數組的形狀大小,如果不一致,則會通過尾部對齊擴展數組的方式實現計算

    e.g.      

      技術分享圖片

  生成隨機數

    導入庫:import np.random

    生成隨機種子:np.random.seed(n)

    生成特定分布的隨機數:

      技術分享圖片

    

    還有個人平常使用的一些方法:

      np.random.randn(row, cul)  # 是從標準正態分布中返回一個或多個樣本值。

      np.random.rand(row, cul)  # 隨機樣本位於[0, 1)中。

  數據的存取

    技術分享圖片

python 繪圖神器 matplotlib

  基本步驟:

    1. 導入繪圖模塊:

      import matplotlib.pyplot as plt

    2. 繪制圖像:

      plt.plot()      

    3. 顯示圖像:

      plt.show()

  常用的顏色與線條控制:

    技術分享圖片

  標註:

    技術分享圖片

  繪制子圖:

    plt.subplot()

    代碼實現:

      技術分享圖片

  直方圖:

    plt.hist()

    代碼實現:

      技術分享圖片

  餅狀圖:

    plt.pie()

    代碼實現一個關於各產商手機銷量的餅狀圖:    

    技術分享圖片

Numpy 處理圖片

  import matplotlib.image as mpimg

  

  代碼實現:

    讀取圖片:

      img = mpimg.imread(‘*.jpeg‘)

    查看圖片的形狀:

      img.shape

    顯示圖像:

      plt.imshow(img)

      plt.show()

    對圖像進行切片:

      img_part = img[150:600, 250:800, :]

      img_ par = img[150:600, 250:800, 0] # 只保存一個紅色通道的圖片,即是灰度圖

    利用數組的合並為拼接圖片:

      img_contact = np.concatenate((img, img), axis=0)

    顯示圖像的部分通道:

      r, g, b = np.split(img, 3, axis=2) # 從維度2將圖像拆分成3個

    交換 b 和 g 通道:

      rbg = np.concatenate((r, b, g), axis=2)

【情感分析】北航課題組 筆記二