1 生成Numpy數組
- 從已有數據中創建數組
import numpy as np
ls1 = [1,2,3]
nd1 = np.array(ls1)
print(type(nd1))
- 利用random模塊生成數組
np.random.seed(0) # 設置隨機數種子
nd = np.random.random([2,2]) # 生成0-1之間的隨機數
nd = np.random.uniform(1,9,[3,3]) # 生成均勻分佈的隨機數
nd = np.random.randint(1,9,[3,3]) # 生成隨機的整數
nd = np.random.normal(0,1,[3,3]) # 生成正太分佈
nd = np.random.randn(10,10) # 生成正太分佈的隨機數
nd = np.random.shuffle(nd) # 打亂生成的隨機數
print(nd)
- 創建特定形狀的多維數組
nd = np.zeros((3,3)) # 創建全0的數組
nd = np.ones((3,3)) #創建全1的數組
nd = np.empty((3,4)) # 創建空數組,值爲未初始化的垃圾值
nd = np.zeros_like(nd)
nd = np.ones_like(nd)
nd = np.empty_like(nd)
nd = np.eye(5) # 創建對角矩陣
nd = np.full((3,4), 666) # 創建全爲666的數組
print(nd)
- 利用arange、linspace函數生成數組
nd = np.linspace(0,1,10,endpoint=True)
print(nd)
# [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ]
2 獲取元素
nd = np.random.random([10])
print(nd[3]) # 獲取某個元素
print(nd[2:8]) # 獲取某段數據
print(nd[2:8:2]) # 獲取固定間隔的某段數據
nd = np.arange(25).reshape([5,5])
print(nd[(nd>2)&(nd<5)]) # 獲取數值在一個值域之內的數據
print(nd[1:4,:]) # 截取行數據
print(nd[:,4:7]) # 截取列數據
3 Numpy的算術運算
- 對應元素相乘
對應元素相乘(Element-Wise Product)是兩個矩陣中對應元素乘積。np.multiply函數用於數組或矩陣對應元素相乘,輸出與相乘數組或矩陣的大小一致。
a = np.random.randn(3,4)
b = np.random.randn(3,4)
c = np.multiply(a,b)
- 點積運算
點積運算(Dot Product)又稱爲內積,在Numpy用np.dot表示。
a = np.random.randn(3,4)
b = np.random.randn(4,3)
c=np.dot(a,b)
4 數組變形