1.np.array構(gòu)造函數(shù) 用法:np.array([1,2,3,4,5]) 1.1 numpy array 和 python list 有什么區(qū)別? 標(biāo)準(zhǔn)Python的列表(list)中,元素本質(zhì)是對象。如:L = [1, 2, 3],需要3個指針和三個整數(shù)對象,對于數(shù)值運算比較浪費內(nèi)存和CPU。因此,Numpy提供了ndarray(N-dimensional array object)對象:存儲單一數(shù)據(jù)類型的多維數(shù)組。 1.2 如何強制生成一個 float 類型的數(shù)組 d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.float) 1.3 使用astype(int)對上述 array 進行強制類型轉(zhuǎn)換 d.astype(int) 1.4.dtype 和type 的區(qū)別是什么 type(d) 和 d.dtype 一個返回的是d 的數(shù)據(jù)類型 nd.array 另一個返回的是數(shù)組中內(nèi)容的數(shù)據(jù)類型 2. arange 用法 :np.arange(0,10) // 生成[0,1,2,3,4,5,6,7,8,9] 左開右閉不包括10 2.1.arange 和python 的range 函數(shù)的區(qū)別是什么 arange可以生成浮點類型,而range只能是整數(shù)類型 3. reshape np.arange(1,10).reshape((3,3)) 從(3,4)改為(4,3)并不是對數(shù)組進行轉(zhuǎn)置,而只是改變每個軸的大小,數(shù)組元素在內(nèi)存中的位置并沒有改變 reshape(-1,1) 任一行一列 4. 構(gòu)造等差數(shù)列 np.linspace(1, 10, 10) #構(gòu)造等差數(shù)列 開始值,結(jié)束值,共幾個數(shù)字 #包括終止值 [1,2,3,4,5,6,7,8,9,10] #可以通過選項配置其不包括終止值 c=np.linspace(1, 10, 10, endpoint=False) 5.構(gòu)造等比數(shù)列 np.logspace(1,4,4,base=2,endpoint=True) 6.隨機數(shù)生成 6.1隨機生成(44)個0-10的數(shù)的二維數(shù)組* np.random.randint(a, b, size=(c, d)) 6.2.隨機生成 0-1的10個數(shù)字 np.random.rand 7.np.array 的數(shù)組切片 a.切片規(guī)則 [三冒號規(guī)則] [開始:結(jié)尾:步長] b.開始為-1 a[-1] 取最后一個 a = [0,1,2,3,4,5,6,7] a[-1] = 7 c.結(jié)尾為-1(開始必須為大于等于0的數(shù)) a[2:-1] = [2,3,4,5,6] d.步長為-1,意味著反轉(zhuǎn) a[::-1]=[7,6,5,4,3,2,1] 8.特殊矩陣的生成 np.ones((3,3))、np.zeros((3,3))、np.eye(1,1) 奇怪的是 eye 為啥不接收元祖作為參數(shù)呢?暈 eye 也沒有 寫成eye 還有 a=[1,2,3] np.diag(a) 是生成1,2,3 為對角線的方陣 9.數(shù)組的運算及矩陣的運算 a.數(shù)組的相加,相當(dāng)?shù)碾S意,不用一樣的行和列 a = np.array([1,2,3,4,5]) b = a.reshape(-1,1) a+b 返回的是一個 5*5 的矩陣 b.矩陣的加法必須是行列相同 a = np.matrix(np.array([[1,2,3],[2,1,3]])); a.T 表示轉(zhuǎn)置 a.I 表示逆矩陣 c.對應(yīng)元素相乘用 multiple ,矩陣相乘可直接寫,但行和列要相等 a1=mat([1,1]); a2=mat([2,2]); a3=multiply(a1,a2) ———————————————— 版權(quán)聲明:本文為CSDN博主「瑤子ove」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/weixin_40924580/article/details/86488554 |
|