25、pandas的reshape(1,-1)什么意思?

在創(chuàng)建DataFrame的時候常常使用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ù),這個好理解,就是轉(zhuǎn)換成矩陣。

然而,在實際使用中,特別是在運(yùn)用函數(shù)的時候,系統(tǒng)經(jīng)常會提示是否需要對數(shù)據(jù)使用reshape(1,-1)或者reshape(-1,1)進(jìn)行轉(zhuǎn)換,那這兩個轉(zhuǎn)換是什么意思呢?難道還有-1行的數(shù)據(jù)?

我們來嘗試一下:

使用reshape(-1,1)

在使用了reshape(-1,1)之后,數(shù)據(jù)集似乎變成了一列,這樣看起來不明顯,我們把這些數(shù)據(jù)導(dǎo)出到excel看看:

導(dǎo)出到excel
excel文件里顯示的

在excel里直接變成了一列。

那么reshape(1,-1)呢?也就是直接變成了一行了。

那這個-1在這里要怎么理解呢?

跟進(jìn)numpy庫官網(wǎng)的介紹,這里的-1被理解為unspecified value,意思是未指定為給定的。如果我只需要特定的行數(shù),列數(shù)多少我無所謂,我只需要指定行數(shù),那么列數(shù)直接用-1代替就行了,計算機(jī)幫我們算贏有多少列,反之亦然。

所以-1在這里應(yīng)該可以理解為一個正整數(shù)通配符,它代替任何整數(shù)。

我們拿剛才的數(shù)據(jù)來試試看:

指定一個值為-1時的數(shù)據(jù)

由上圖可知,指定為-1的時候,其行或列會隨機(jī)分配一個數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容