numpy降維方法
numpy中的降維方法:
- flat():返回一個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)
# 對三維數(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中類變量與成員變量的使用注意點(diǎn)總結(jié)
python 的類中主要會使用的兩種變量:類變量與成員變量。類變量是類所有實(shí)例化對象共有的,而成員變量是每個實(shí)例化對象自身特有的。下面這篇文章主要給大家介紹了在python中類變量與成員變量的一些使用注意點(diǎn),需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04
簡要講解Python編程中線程的創(chuàng)建與鎖的使用
這篇文章主要介紹了簡要講解Python編程中線程的創(chuàng)建與鎖的使用,Python中雖然有GIL的存在,但依然是能夠創(chuàng)建多個線程來交替使用的,需要的朋友可以參考下2016-02-02
Python使用matplotlib的pie函數(shù)繪制餅狀圖功能示例
這篇文章主要介紹了Python使用matplotlib的pie函數(shù)繪制餅狀圖功能,結(jié)合實(shí)例形式分析了Python使用matplotlib的pie函數(shù)進(jìn)行餅狀圖繪制的具體操作技巧,注釋中對pie函數(shù)的用法進(jìn)行了詳細(xì)的說明,便于理解,需要的朋友可以參考下2018-01-01
Python3訪問并下載網(wǎng)頁內(nèi)容的方法
這篇文章主要介紹了Python3訪問并下載網(wǎng)頁內(nèi)容的方法,實(shí)例分析了Python頁面抓取及寫入文件的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
pycharm工具連接mysql數(shù)據(jù)庫失敗問題
這篇文章主要介紹了pycharm工具連接mysql數(shù)據(jù)庫失敗問題及解決方法,非常不錯大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
linux之父進(jìn)程使用kill函數(shù)殺死子進(jìn)程方式
這篇文章主要介紹了linux之父進(jìn)程使用kill函數(shù)殺死子進(jìn)程方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

