numpy數組的操作和運算
-
數組的索引和切片
-
numpy數組也可以切片和索引
a = np.array([1, 2, 3, 4, 5, 6, 7, 8]) # 索引 print(a[0]) # 1 # 切片 print(a[0:-1:2]) # [1 3 5 7]
-
多維數組的索引
# 索引:每個維度一個索引值,逗號分割 a = np.arange(0, 20).reshape(2, 2, 5) print(a) """ [[[ 0 1 2 3 4] [ 5 6 7 8 9]] [[10 11 12 13 14] [15 16 17 18 19]]] """ # 取元素19 print(a[1, 1, -1]) # 19 # 取元素7 print(a[0, 1, 2])
-
多維數組的切片
# 切片 a = np.arange(0, 20).reshape(2, 2, 5) print(a) """ [[[ 0 1 2 3 4] [ 5 6 7 8 9]] [[10 11 12 13 14] [15 16 17 18 19]]] """ # 切片取7到9個元素 print(a[0, 1, 2:])#[7 8 9] # 切片取7,8,17,18四個元素 print(a[:, 1, 2:4]) """ [[ 7 8] [17 18]] """ # 切片取7,9兩個元素 print(a[0, 1, 2::2]) #[7 9]
-
-
ndarray數組的運算
-
數組與標量之間的運算:數組與標量之間的運算作用於數組的每一個元素
a = np.arange(24).reshape((2, 3, 4)) print(a) """ [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] """ # 求數組a的平均值即求數組a內元素的平均值: print(a.mean()) # 11.5 # 計算a與元素平均值的商: a = a / a.mean() print(a) """ [[[0. 0.08695652 0.17391304 0.26086957] [0.34782609 0.43478261 0.52173913 0.60869565] [0.69565217 0.7826087 0.86956522 0.95652174]] [[1.04347826 1.13043478 1.2173913 1.30434783] [1.39130435 1.47826087 1.56521739 1.65217391] [1.73913043 1.82608696 1.91304348 2. ]]] """
-
numpy的一元函數
-
np.abs(x)或np.fabs(x) : 計算數組各元素的絕對值
-
np.sqrt(x):計算數組各元素的平方根
-
np.square(x): 計算數組各元素的平方
-
np.log(x) np.log10(x) np.log2(x) : 分別表示數組各元素的自然對數、以10爲底的對數、以2爲底的對數
-
np.ceil(x) np.floor(x) : ceil中文爲天花板,即朝正無窮大方向取整;floor中文爲地板,即朝負無窮大方向取整
舉例
a = np.array([0.2, 0.8, 1.2]) print(np.ceil(a)) # [1. 1. 2.]
-
np.rint(x) : 計算數組各元素的四捨五入值
-
np.modf(x) : 將數組各元素的小數和整數部分以兩個獨立數組形式返回
-
np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x) : 計算數組各元素的普通型和雙曲型三角函數
-
np.exp(x) :計算數組各元素的指數值
-
np.sign(x) :計算數組各元素的符號值,1(+),0,-1(-)
a = np.array([2, 3, -4, 5]) print(np.sign(a)) # [ 1 1 -1 1] print(np.modf(a)) # (array([ 0., 0., -0., 0.]), array([ 2., 3., -4., 5.])) print(np.square(a)) # [ 4 9 16 25]
-
-
二元函數
-
+ - * / ** : 兩個數組各元素進行對應運算
-
np.maximun(x,y) 或np.fmax() : 元素級的最大值
-
np.minimun(x,y) 或np.fmin() : 元素級的最小值
-
np.mod(x, y) : 元素級的模運算
-
np.copysign(x, y) : 將數組y中各元素值的符號賦值給數組x對應的元素
-
> < >= <= == != : 算術比較,產生布爾型數組
a = np.arange(24).reshape((2, 3, 4)) print(a) """ [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] """ b = np.arange(-12, 12).reshape((2, 3, 4)) print(b) """ [[[-12 -11 -10 -9] [ -8 -7 -6 -5] [ -4 -3 -2 -1]] [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]]] """ print(np.maximum(a, b)) """ [[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]] """ print(a+b) """ [[[-12 -10 -8 -6] [ -4 -2 0 2] [ 4 6 8 10]] [[ 12 14 16 18] [ 20 22 24 26] [ 28 30 32 34]]] """
-
-