機器學習 Numpy的基本使用

2021-10-16 09:41:30 字數 3548 閱讀 3407

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...