Pandas/Numpy中axis参数的理解
一、官方解释
axis的官方解释:
轴用来为超过一维的数组定义的属性,
二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
注意⚠️:**axis的重点在于方向,而不是行和列。**官方对于0和1的解释是轴,也就是坐标轴。而坐标轴是有方向的,所以千万不要用行和列的思维去想axis,因为行和列是没有方向的。
简单记忆:axis=0代表跨行(down),而axis=1代表跨列(across),作为方法动作的副词。
二、图解
- 使用0值表示沿着每一列或行标签\索引值向下执行方法
- 使用1值表示沿着每一行或者列标签向向执行对应的方法
多维:axis=i,表示沿第i个下标索引变化的方向操作
三、应用
1.三维数组求和
In [1]: import numpy as np
In [2]: a = np.array([[[1,1],[2,1],[3,1]],[[4,1],[5,1],[6,1]],[[7,1],[8,1],[9,1]]])
In [3]: a
Out[3]:
array([[[1, 1],
[2, 1],
[3, 1]],
[[4, 1],
[5, 1],
[6, 1]],
[[7, 1],
[8, 1],
[9, 1]]])
In [4]: a.shape
Out[4]: (3, 3, 2)
# 三维3x3x2 变 二维3x2
In [7]: np.sum(a,axis=0)
Out[7]:
array([[12, 3],
[15, 3],
[18, 3]])
# 三维3x3x2 变 二维3x2
In [6]: np.sum(a,axis=1)
Out[6]:
array([[ 6, 3],
[15, 3],
[24, 3]])
# 三维3x3x2 变 二维3x3
In [8]: np.sum(a,axis=2)
Out[8]:
array([[ 2, 3, 4]