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的时候,其行或列会随机分配一个数据。

 

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