在創建DataFrame的時候常常使用reshape來更改數據的列數和行數。
reshape可以用于numpy庫里的ndarray和array結構以及pandas庫里面的DataFrame和Series結構。
?
源數據
?
reshape函數
reshape(行,列)可以根據指定的數值將數據轉換為特定的行數和列數,這個好理解,就是轉換成矩陣。
然而,在實際使用中,特別是在運用函數的時候,系統經常會提示是否需要對數據使用reshape(1,-1)或者reshape(-1,1)進行轉換,那這兩個轉換是什么意思呢?難道還有-1行的數據?
我們來嘗試一下:
?
使用reshape(-1,1)
在使用了reshape(-1,1)之后,數據集似乎變成了一列,?
?
那這個-1在這里要怎么理解呢?
跟進numpy庫官網的介紹,這里的-1被理解為unspecified value,意思是未指定為給定的。
如果我只需要特定的行數,列數多少我無所謂,我只需要指定行數,那么列數直接用-1代替就行了,計算機幫我們算贏有多少列,反之亦然。
所以-1在這里應該可以理解為一個正整數通配符,它代替任何整數。
我們拿剛才的數據來試試看:
由上圖可知,指定為-1的時候,其行的數量會根據列的要求自動改變
再提一下轉秩 T 和廣播機制