【情感分析】北航課題組 筆記二
主講:莊老師
數據處理利器—— 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)
【情感分析】北航課題組 筆記二