Infi-chu:
http://www.cnblogs.com/Infi-chu/
import numpy as np # 建立的陣列 stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]]) # 基本屬性 count = stus_score.size print(`該陣列的元素有 --> `,count) shape = stus_score.shape print(`該陣列的形狀是 --> `,shape) # shape結果的第一個元素是行,第二個元素是列 ndim = stus_score.ndim print(`該陣列的維度 --> `,ndim) type = stus_score.dtype print(`該陣列元素型別是 --> `,type) # 快速建立n維陣列的API函式 # 建立10行10列的數值為浮點1的矩陣 array_one = np.ones([10,10]) print(`array_one --> `,array_one) # 建立10行10列的數值為浮點1的矩陣 array_zero = np.zeros([10,10]) print(`array_zero --> `,array_zero) # Numpy建立隨機陣列 # 均值分佈 ``` np.random.rand(10, 10)建立指定形狀(示例為10行10列)的陣列(範圍在0至1之間) np.random.uniform(0, 100)建立指定範圍內的一個數 np.random.randint(0, 100) 建立指定範圍內的一個整數 ``` # 正態分佈 ``` 給定均值/標準差/維度的正態分佈np.random.normal(1.75, 0.1, (2, 3)) ``` # 陣列索引、切片 # 正態生成4行5列的二維陣列 arr = np.random.normal(1.75, 0.1, (4, 5)) print(arr) # 擷取第1至2行的第2至3列(從第0行算起) after_arr = arr[1:3, 2:4] print(after_arr) # 改變陣列形狀(要求前後元素個數匹配) print("reshape函式的使用!") one_20 = np.ones([20]) print("-->1行20列<--") print (one_20) one_4_5 = one_20.reshape([4, 5]) print("-->4行5列<--") print (one_4_5) # 陣列的計算 # 比較 res = stus_score > 80 print(res) res = np.where(stus_score > 80) print(res) res = np.where(stus_score > 80,`Yes`,`No`) # 大於80的重寫為Yes,否則為No print(res) # 求最大值 print(`陣列是: `,stus_score) # 求每一列的最大值(0表示列) result = np.amax(stus_score, axis=0) print("每一列的最大值為: ",result) # 求每一行的最大值(1表示列) result = np.amax(stus_score, axis=1) print("每一行的最大值為: ",result) # 求最小值 # 求每一行的最小值(0表示列) print("每一列的最小值為:") result = np.amin(stus_score, axis=0) print(result) # 求每一行的最小值(1表示行) print("每一行的最小值為:") result = np.amin(stus_score, axis=1) print(result) # 求平均值 # 求每一行的平均值(0表示列) print("每一列的平均值:") result = np.mean(stus_score, axis=0) print(result) # 求每一行的平均值(1表示行) print("每一行的平均值:") result = np.mean(stus_score, axis=1) print(result) # 求方差 # 求每一行的方差(0表示列) print("每一列的方差:") result = np.std(stus_score, axis=0) print(result) # 求每一行的方差(1表示行) print("每一行的方差:") result = np.std(stus_score, axis=1) print(result) # 陣列的運算 # 加法 print("加分前:") print(stus_score) # 為所第一列成績都加5分 stus_score[:, 0] = stus_score[:, 0]+5 stus_score_new = stus_score[:, 0]+5 print("加分後:") print(stus_score) print(``) print(stus_score_new) # 乘法 print("減半前:") print(stus_score) # 平時成績減半 stus_score[:, 0] = stus_score[:, 0]*0.5 print("減半後:") print(stus_score) # 陣列間運算 a = np.array([1, 2, 3, 4]) b = np.array([10, 20, 30, 40]) c = a + b d = a - b e = a * b f = a / b print("a+b為", c) print("a-b為", d) print("a*b為", e) print("a/b為", f) # np.dot() # (M行, N列) * (N行, Z列) = (M行, Z列) # 平時成績佔40% 期末成績佔60%, 計算結果 q = np.array([[0.4], [0.6]]) result = np.dot(stus_score, q) print("最終結果為:") print(result) # 矩陣拼接 # 垂直拼接 print("v1為:") v1 = [[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11]] print(v1) print("v2為:") v2 = [[12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23]] print(v2) result = np.vstack((v1, v2)) print("v1和v2垂直拼接的結果為:") print(result) # 水平拼接 print("v1為:") v1 = [[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11]] print(v1) print("v2為:") v2 = [[12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23]] print(v2) result = np.hstack((v1, v2)) print("v1和v2水平拼接的結果為") print(result)