numpy降維方法
numpy中的降維方法:
- flat():返回一個(gè)iterator,然后去遍歷
- flatten():將多維數(shù)組拉平,并拷貝一份
- ravel():將多維數(shù)組拉平(一維)
- squeeze():除去多維數(shù)組中,維數(shù)為1的維度,如315降維后3*5
- reshape(-1):多維數(shù)組,拉平
- reshape(-1,5),其中-1表示我們不用親自去指定這一維度的大小,理解為n維
代碼示例:
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6]]) c = [] for x in a.flat: ? ? c.append(x) print('flat迭代器降一維:\n', c) d = a.flatten() print('flatten方法降一維:\n', d) e = a.ravel() print('ravel方法降一維:\n', e) g = np.squeeze(a) print('squeeze方法降一維:\n', g) f = a.reshape(-1) print('reshape方法降一維:\n', f) a.resize((1, 6)) print('resize方法:\n', a)
結(jié)果:
flat迭代器降一維:
[1, 2, 3, 4, 5, 6]
flatten方法降一維:
[1 2 3 4 5 6]
ravel方法降一維:
[1 2 3 4 5 6]
squeeze方法降一維:
[[1 2 3]
[4 5 6]]
reshape方法降一維:
[1 2 3 4 5 6]
resize方法:
[[1 2 3 4 5 6]]
補(bǔ):NumPy 高維數(shù)組降維方法
import numpy as np a = np.arange(64).reshape([4,4,4]) # [[[ 0 ?1 ?2 ?3] # ? [ 4 ?5 ?6 ?7] # ? [ 8 ?9 10 11] # ? [12 13 14 15]] # # ?[[16 17 18 19] # ? [20 21 22 23] # ? [24 25 26 27] # ? [28 29 30 31]] # # ?[[32 33 34 35] # ? [36 37 38 39] # ? [40 41 42 43] # ? [44 45 46 47]] # # ?[[48 49 50 51] # ? [52 53 54 55] # ? [56 57 58 59] # ? [60 61 62 63]]] print(a) # 對(duì)三維數(shù)組a進(jìn)行降維打擊 a_reshape = a.reshape(-1) # [0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # ?24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 # ?48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63] print('reshape方法:\n',a_reshape) c_flat = [] for x in a.flat: ? ? c_flat.append(x) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63] print('flat迭代器:\n',c_flat) d_flatten = a.flatten() # [0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # ?24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 # ?48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63] print('flatten方法:\n',d_flatten) e_ravel = a.ravel() # [ 0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # ?24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 # ?48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63] print('ravel方法:\n',e_ravel) f_resize = a.resize(64) # None ? resize ? 沒有返回值,改變的是原數(shù)組 print('resize方法:\n',f_resize) # [ 0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # ?24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 # ?48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63] print(a)
到此這篇關(guān)于numpy降維方法的文章就介紹到這了,更多相關(guān)numpy 降維內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中dict()的高級(jí)用法實(shí)現(xiàn)
這篇文章主要介紹了python中dict()的高級(jí)用法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Python實(shí)現(xiàn)獲取系統(tǒng)臨時(shí)目錄及臨時(shí)文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)獲取系統(tǒng)臨時(shí)目錄及臨時(shí)文件的方法,結(jié)合實(shí)例形式分析了Python文件與目錄操作相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下2019-06-06python包裝和授權(quán)學(xué)習(xí)教程
包裝是指對(duì)一個(gè)已經(jīng)存在的對(duì)象進(jìn)行系定義加工,實(shí)現(xiàn)授權(quán)是包裝的一個(gè)特性,下面這篇文章主要給大家介紹了關(guān)于python包裝和授權(quán)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Python實(shí)現(xiàn)多圖繪制系統(tǒng)的示例代碼
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)制作一個(gè)多圖繪制系統(tǒng),文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2023-09-09