Python中的Numpy模組(1)
阿新 • • 發佈:2018-12-19
1.什麼是Numpy?
Numpy (Numeric Python)
Numpy系統是Python中的一種開源的數值計算擴充套件。
(1) 一個強大的N維陣列物件Array
(2) 比較成熟的(廣播) 函式庫
(3) 用於整合C/C++和fortran 程式碼的工具包
(4) 實用的線性代數,傅立葉變換和隨機數生成函式
(5) numpy和稀疏矩陣運算包scipy配合使用更加強大
2.使用Numpy建立numpy陣列
# 匯入numpy模組 import numpy as np # 檢視numpy的版本號 print(np.__version__) # 建立ndarray n1 = np.array([3, 1, 4, 5]) # 一維的 print(n1) # 結果 [3 1 4 5] n2 = np.array([[5, 1, 2, 6], [7, 9, 6, 45], [1, 5, 4, 6]]) # 二維的 print(n2) # 結果 [[ 5 1 2 6] # [ 7 9 6 45] # [ 1 5 4 6]] # 打印出維度 print(n1.shape) # (4,) 四行 沒有列 print(n2.shape) # (2, 4) 三行四列 #str型別array n3 = np.array(list('hello')) print(n3) #['h' 'e' 'l' 'l' 'o'] print(type(n3)) # 如果傳進來的列表中包含不同的型別,則統一為同一型別,優先順序:str->float->int n4 = np.array([1,3.14,'python']) print(n4)
3.使用Nunpy的routines建立
# 1.通過ones (內容全是1) # np.ones(shape,dtype=None) # 引數說明: shape:維度,型別是元素型別 dtype:型別 n1 = np.ones(shape=(10, 8), dtype=int) # 二維的型別為int print(n1) # 三維的型別為float n2 = np.ones(shape=(100, 80, 3), dtype=float) print(n2) # 2.通過zeros (內容全是0) # np.zeros(shape,dtype=None) n3 = np.zeros((4, 4)) # 裡面可以直接寫引數值 print(n3) # 3.通過 full (內容全是fill_value的值) # np.full(shape,fill_value,dtype=None) n4 = np.full((10, 10), fill_value=1024) print(n4) # 4.通過 eye (根據引數值:N行N列,並且矩陣對角線的值為1,其他的位置上的值為0) # np.eye(N,M=None,k=0,dtype=float) n5 = np.eye(10) # 10行10列,對角線為1,其他位置為0 (即一元十次方程,滿秩矩陣) print(n5) # 5.通過 linspace (內容全是fill_value的值) # np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None) # 引數說明: 從start開始到stop結束,均勻劃分num個數 n6 = np.linspace(0, 100, 50) print(n6) # 6.通過arange() n7 = np.arange(0, 100, 20) # 從0到100(左閉右開) ,步長為2 print(n7) # 7.1通過random.randint() 隨機生成數 # 從0開始到150之間隨機生成size個數,(也是左閉右開) n8 = np.random.randint(0,150,size=5) print(n8) # 7.2random.randn()標準的正太分佈 n9 = np.random.randn(100) print(n9) # 7.3random.normal()標準的分佈 # loc 代表錨點,即位置 scale代表在loc上下波動的係數,數值越大波動的越厲害 n10 = np.random.normal(loc=175,scale= 2,size=100) print(n10) # 7.4random.random() 生成0到1的隨機數,左閉右開 n11 = np.random.random(size= (200,300,3)) #(200,300,3)代表維度 print(n11)