【数据分析】reshape(-1,1)和numpy的广播机制
在創(chuàng)建DataFrame的時(shí)候常常使用reshape來更改數(shù)據(jù)的列數(shù)和行數(shù)。
reshape可以用于numpy庫里的ndarray和array結(jié)構(gòu)以及pandas庫里面的DataFrame和Series結(jié)構(gòu)。
?
源數(shù)據(jù)
?
reshape函數(shù)
reshape(行,列)可以根據(jù)指定的數(shù)值將數(shù)據(jù)轉(zhuǎn)換為特定的行數(shù)和列數(shù),這個(gè)好理解,就是轉(zhuǎn)換成矩陣。
然而,在實(shí)際使用中,特別是在運(yùn)用函數(shù)的時(shí)候,系統(tǒng)經(jīng)常會(huì)提示是否需要對數(shù)據(jù)使用reshape(1,-1)或者reshape(-1,1)進(jìn)行轉(zhuǎn)換,那這兩個(gè)轉(zhuǎn)換是什么意思呢?難道還有-1行的數(shù)據(jù)?
我們來嘗試一下:
?
使用reshape(-1,1)
在使用了reshape(-1,1)之后,數(shù)據(jù)集似乎變成了一列,?
?
那這個(gè)-1在這里要怎么理解呢?
跟進(jìn)numpy庫官網(wǎng)的介紹,這里的-1被理解為unspecified value,意思是未指定為給定的。
如果我只需要特定的行數(shù),列數(shù)多少我無所謂,我只需要指定行數(shù),那么列數(shù)直接用-1代替就行了,計(jì)算機(jī)幫我們算贏有多少列,反之亦然。
所以-1在這里應(yīng)該可以理解為一個(gè)正整數(shù)通配符,它代替任何整數(shù)。
我們拿剛才的數(shù)據(jù)來試試看:
由上圖可知,指定為-1的時(shí)候,其行的數(shù)量會(huì)根據(jù)列的要求自動(dòng)改變
再提一下轉(zhuǎn)秩 T 和廣播機(jī)制
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的【数据分析】reshape(-1,1)和numpy的广播机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSON(JavaScript Obje
- 下一篇: 将本地Blog部署到GitHub上,有自