numpy介紹
numpy是乙個開源的python科學計算庫,用於快速處理任意維度的陣列。numpy支援常見的陣列和矩陣操作,對於同樣的數值計算任務,使用numpy比之間使用python要簡潔的多。
numpy使用ndarray物件來處理多維陣列,該物件是乙個快速而靈活的大資料容器。
ndarray介紹
numpy提供了乙個n維陣列型別ndarray,它描繪了相同型別的「items」的集合。ndarray的陣列底層經過優化,比使用python原生的陣列更快更迅速。但ndarray中所有的資料元素必須要統一型別,這也是ndarray的一大特點。
由於機器學習的最大特點就是大量的資料運算,因此ndarray很適合這種應用場景。
ndarray的屬性
屬性名稱
介紹ndarray.shape
返回陣列維度的元組
ndarray.ndim
返回陣列維數
ndarray.size
返回陣列中元素的數量
ndarray.itemsize
返回乙個陣列元素的長度,以位元組為單位
ndarray.dtype
返回陣列元素的型別
ndarray的型別
通過type(ndarray.dtype)
獲得陣列對應的型別
名稱描述
簡寫np.bool
布林型別,true or flase
『b』np.int8
乙個位元組大小,−27
-2^7
−27 ~ 27−
12^7 - 1
27−1
『i』np.int16
整數型別,−215
-2^−2
15~ 215−
12^ - 1
215−
1『i2』
np.int32
整數型別,−231
-2^−2
31~ 231−
12^ - 1
231−
1『i4』
np.int64
整數型別,−263
-2^−2
63~ 263−
12^ - 1
263−
1『i8』
np.uint8
無符號整數型別,0
00 ~ 28−
12^ - 1
28−1
『u』np.uint16
無符號整數型別,0
00 ~ 216−
12^ - 1
216−
1『u2』
np.uint32
無符號整數型別,0
00 ~ 232−
12^ - 1
232−
1『u4』
np.uint64
無符號整數型別,0
00 ~ 264−
12^ - 1
264−
1『u8』
np.float16
半精度浮點數型別,階碼5位,尾數10位
『f2』
np.float32
單精度浮點數型別,階碼8位,尾數23位
『f4』
np.float64
雙精度浮點數型別,階碼11位,尾數52位
『f8』
np.complex64
單精度浮點複數型別
『c8』
np.complex128
雙精度浮點複數型別
『c16』
np.object_
python物件型別
『o』np.string_
字串型別
『s』np.unicode_
unicode型別
『u』可以在建立元素時通過dtype屬性指定ndarray的型別,如:
a = np.array([1
,2,3
], dtype=np.float32)
若不指定,則整數預設為int64,小數預設float64
# 生成等間隔陣列
np.linspace(0,
100,
11)
建立指定步長的等差陣列
np.arange(start, stop, step, dtype)
引數:
# 生成指定步長的陣列
np.arange(10,
50,2)
建立以10為底的等比數列
np.logspace(start, stop, num)
引數:
# 獲取1, 10, 100
np.logspace(0,
2,3)
生成隨機數陣列:
正態分佈隨機數組的建立
均勻分布隨機數組的建立
三元運算np.where:
# 將前四名學生的前4門成績中,及格的設為1,不及格的設為0
temp = score[:4
,:4]
np.where(temp >=60,
1,0)
# 類似c語言中的三元運算子 ? :
復合邏輯的運算:
需要借助np.logical_and()
和np.logical_or()
# 將前四名學生的前4門成績中,及格但不是優秀[60,90)的設為1,不及格的設為0
temp = score[:4
,:4]
np.where(np.logical_and(temp >=
60, temp <90)
,1,0
)# 將前四名學生的前4門成績中,不及格或優秀![60,90)的設為1,不及格的設為0
np.where(np.logical_or(temp <
60, temp >=90)
,1,0
)
統計運算:
資料探勘/機器學習領域中常用的統計指標:(axis=1時統計行;axis=0時統計列;預設統計全部)
np.min(ndarray, axis)
計算最小值
np.argmin(ndarray, axis)
計算最小值的索引
np.max(ndarray, axis)
計算最大值
np.argmax(ndarray, axis)
計算最大值的索引
np.median(ndarray, axis)
計算中位數
np.mean(ndarray, axis, dtype)
計算平均數
np.std(ndarray, axis, dtype)
計算標準差
np.var(ndarray, axis, dtype)
計算方差
廣播機制需要擴充套件維度小的陣列,使得它與維度最大的陣列的shape值相同,以便使用元素級函式或者運算子進行運算
numpy基本使用
參考文獻 官方幫助文件 numpy v1.12 manual csdn numpy之四 高階索引和索引技巧 from numpy import definit array print 建立一維陣列 a arange 5 print a print a.dtype 顯示陣列中的資料型別 print a...
機器學習的小石子 numpy基本小知識
機器學習之numpy基本知識 1.numpy陣列建立 函式 np.arange np.array astype 轉換資料型別 2.資料讀取 np.loadtxt file path delimiter delimiter引數定義按進行分割載入資料 3.索引和切片 example 陣列t t 取全部元...
機器學習 numpy庫的學習
import numpy as np import random 處理數值型的資料 使用numpy生成陣列,型別為ndarray t1 np.array 1 2,3 print t1 print type t1 t2 np.array range 10 print t2 full填充元素 np.fu...