Python中NumPy(axis=0 与axis=1)

时间:2021-07-04 21:24:59

python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码:

>>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \
columns=["col1", "col2", "col3", "col4"])
>>>df
        col1  col2  col3  col4
    0     1     1     1     1
    1     2     2     2     2
    2     3     3     3     3

如果我们调用df.mean(axis=1),我们将得到按行计算的均值

>>> df.mean(axis=1)
    0    1
    1    2
    2    3

然而,如果我们调用 df.drop((name, axis=1),我们实际上删掉了一列,而不是一行:

>>> df.drop("col4", axis=1)
        col1  col2  col3
    0     1     1     1
    1     2     2     2
    2     3     3     3
这里其实很简单,axis=0其实是跨行,而axis=1是跨列
我们这里来看看df.mean(axis=1),因为axis=1所以按照上面的说法,就是跨列进行计算,这样跨了3列计算得到了平均值(相当于水平方向上的操作)
再仔细来看看 df.drop((name, axis=1),也是跨列进行计算,这里我们利用上面所得到的想法,是水平方向上的操作,这里规定了name,也就是对这一列进行水平方向上的操作(这里是drop操作),于是就得到了上述的结果