axis

在数据统计时,我们经常会使用numpy+pandas来进行统计,有一个很有意思的问题,就是轴的问题,这个类似于数学中的x轴,y轴,如下面个的例子。

1
2
data = pd.DataFrame(np.arange(16).reshape(4,4),columns=list('abcd'))     
data

本篇文章的水所有代码是在jupyter notebook下进行的。



但我们需要自己计算某一咧的平均数是如何我们可以通过axis来解决这个问题。

1
data.mean(axis=1)

其结果是

1
2
3
4
0     1.5
1 5.5
2 9.5
3 13.5

axis = 1 或者0的含义

axis实际上就是表示轴。对于一个二维空间,axis=1代表横轴,axis=0按照竖轴。

上述代码是计算横轴的数字的平均值,所以是1.

再来一个例子:

1
2
func = lambda x : x.max()- x.min()
result = data.apply(func)

得出的结果肯定是

1
2
3
4
a    12
b 12
c 12
d 12

由于axis默认是0,所以func函数操作的数字都是一个竖轴上。

小结

axis实际上是每次运算都是按照某一个轴进行的,也就行说他的上一个或者下一个数字正好处于一个轴上。