reshape(1,-1) 中的-1是什麼意思?

轉自 探索數據之美 的 《25、pandas的reshape(1,-1)什麼意思?》

來源:簡書

鏈接 https://www.jianshu.com/p/d9df005636a6

 

在創建DataFrame的時候常常使用reshape來更改數據的列數和行數。

reshape可以用於numpy庫裏的ndarray和array結構以及pandas庫裏面的DataFrame和Series結構。

源數據

reshape函數

reshape(行,列)可以根據指定的數值將數據轉換爲特定的行數和列數,這個好理解,就是轉換成矩陣

然而,在實際使用中,特別是在運用函數的時候,系統經常會提示是否需要對數據使用reshape(1,-1)或者reshape(-1,1)進行轉換,那這兩個轉換是什麼意思呢?難道還有-1行的數據?

我們來嘗試一下:

使用reshape(-1,1)

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

導出到excel

excel文件裏顯示的

在excel裏直接變成了一列。

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

那這個-1在這裏要怎麼理解呢?

跟進numpy庫官網的介紹,這裏的-1被理解爲unspecified value,意思是未指定爲給定的。如果我只需要特定的行數,列數多少我無所謂,我只需要指定行數,那麼列數直接用-1代替就行了,計算機幫我們算贏有多少列,反之亦然。

所以-1在這裏應該可以理解爲一個正整數通配符,它代替任何整數。

我們拿剛纔的數據來試試看:

指定一個值爲-1時的數據

由上圖可知,指定爲-1的時候,其行或列會隨機分配一個數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章