Numpy 是Python語言的一個庫(library),專為數字處理而生,是進行機器學習研究的必學工具。
關於numpy的學習內容如下:
數組簡介和數組的構造
數組取值和賦值
數學運算
broadcasting
邏輯運算
數組高級操作
文件輸入輸出
(橙色部分為代碼列印輸出的部分,
所有代碼均經過實際操作所得。)
導入Numpy庫
import numpy as np
創建一個一維數組
a=np.array([1,3,5])
print(a)
[1 3 5]
列印變量a的類型
print(type(a))
<class 'numpy.ndarray'>
#ndarray : n dimensional array n維數組
取a的第一個元素
print(a[0])
1
創建一個二維的數組
b=np.array([[1,2,3],[2,3,4]])
print(b)
[[1 2 3]
[2 3 4]]
列印多維數組的類型
print(type(b))
<class 'numpy.ndarray'>
列印出數組的形狀【shape】
print(b.shape)
(2, 3) #2×3 表示兩行三列
取0行第3列的元素
print(b[0,2])
3
特殊矩陣
創建全為0的ndarry np.zeros()
a=np.zeros((2,3))
print(a)
[[ 0. 0. 0.]
[ 0. 0. 0.]]
創建全為1的ndarray np.ones()
b=np.ones((2,3))
print(b)
[[ 1. 1. 1.]
[ 1. 1. 1.]]
創建對角矩陣 np.eye()
d=np.eye(3)
print(d)
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
創建隨機數組 np.random.random()
e=np.random.random((2,3))
print(e)
[[ 0.48969351 0.25491161 0.75721088]
[ 0.18787563 0.64471311 0.80228865]]
創建0-n 一維數組 np.arange()
g=np.arange(15)
print(g)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
類型
數組中數據類型 dtpye 記憶: data type
a=np.array([1,2,4])
print(a.dtype)
int32
b=np.array([1.2,2.3,1.01])
print(b)
[ 1.2 2.3 1.01]
print(b.dtype)
float64
改變數據類型 dtype=
a=np.array([1,2,4],dtype=np.float)
print(a.dtype)
float64
轉換數據類型 a.astype(np.int)
a=np.array([1.2,2.3,1.01])
print(a)
[ 1.2 2.3 1.01]
print(a.dtype)
float64
int_a=a.astype(np.int)
print(int_a)
[1 2 1]
print(int_a.dtype)
int32
float_a=int_a.astype(np.float)
print(float_a)
[ 1. 2. 1.]
Numpy取值方式
切片 跟list 切片類似 0:2,0:2 取前2行的前2列
a=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(a.shape)
(4, 3)
print(a)
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
b=a[0:2,0:2]
print(b)
[[1 2]
[4 5]]
b[0,0]=111
print(b)
[[111 2]
[4 5]]
row_r1=a[1,:] #取第二行
print(row_r1)
[4 5 6]
col_c1=a[:,1] #取第二列
print(col_c1)
[ 2 5 8 11]
print(a[[0,1,3],[1,1,0]]) #取 0 1,1 1,3 0
[ 2 5 10]
條件判斷索引
a=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(a)
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
bool_index=(a>2)
print(bool_index)
[[False False True]
[ True True True]
[ True True True]
[ True True True]]
運算
x=np.array([[1,2],[3,4]],dtype=np.float64)
y=np.array([[5,6],[7,8]],dtype=np.float64)
print(x),print(y)
[[ 1. 2.]
[ 3. 4.]]
[[ 5. 6.]
[ 7. 8.]]
print(x.shape)
(2, 2)
print(y.shape)
(2, 2)
逐個元素求和 x+y
x+y
array([[ 6., 8.],
[ 10., 12.]])
逐個元素作差 x-y
x-y
array([[-4., -4.],
[-4., -4.]])
逐個元素相乘 x*y np.multiply(x,y)
x*y
array([[ 5., 12.],
[ 21., 32.]])
np.multiply(x,y)
array([[ 5., 12.],
[ 21., 32.]])
逐個元素相除 x/y np.divide(x,y)
x/y
array([[ 0.2 , 0.33333333],
[ 0.42857143, 0.5 ]])
np.divide(x,y)
array([[ 0.2 , 0.33333333],
[ 0.42857143, 0.5 ]])
numpy基礎部分完。
一個庫的學習,不需要我們將每個方法都背誦下來,對於基礎的操作,肯定是需要掌握的。
為了避免學習疲勞,篇幅不宜過長,下次我們再介紹numpy的高級操作。
學習的路上,
需要堅持,
一起加油!
謝謝你。
歡迎你關注,與你共同進步。
長按二維碼關注