简述一种如何直观的理解Pandas 和 Numpy里面的axis参数的方法。
Numpy 和 Pandas里的sort、mean、drop等操作,不是分行或者列分别用一个method来定义,而是一个method里面用户指定axis来操作的,举例来说:
我们先在此处下载了一份各国酒类消费的csv文件为例。
如下是pandas里按axis 0和1进行drop的操作示例,我们很容易看出,axis 0是按行drop,而axis 1是按列drop:
但是,mean操作呢?
容易看出,axis 0得出了每一列的均值,而axis 1得出了则是每一行的均值。
那么,在Numpy里呢?
容易看出,axis为1的时候得出的是每行的sum,axis为0的时候得出了每列的sum。
由上面的例子,我们似乎可以看出,axis为1代表水平方向上的操作,axis为0代表垂直方向上的操作,比如axis为1的sum得出的就是每一行的和。
但是,在Pandas的Dataframe里面,为什么axis=1代表的是drop整个列呢?以下这个例子也可以说明一些情况:
联系这个视频How do I use the “axis” parameter in pandas? - YouTube,大家也可以得到一些结论,作者说:
0 is the row axis, and 1 is the column axis. When you drop with axis=1, that means drop a column. When you take the mean with axis=1, that means the operation should “move across” the column axis, which produces row means.
指的就是一种更加容易理解的方式,“0就是行的axis,1就是列的axis,当以axis=1来drop,那么就是drop一个column,而axis=1 来取mean,那么就是这个操作‘穿越’了列的axis,产生了行上的mean”。
另外,其实我们也可以这样来操作,
可以看出,axis=0与axis=’rows’是一样的(在Pandas里),是不是更加容易理解了?
How to Use t-SNE Effectively这个网站给了一个非常形象的t-SNE在线实验环境,推荐大家去看一看!