1、先以二维数组为例:

此数组为二维数组,shape=[4,3],第一个维度为4,第二个维度为3

python0开头的整数数字 python中0和1_二维数组

在numpy中若没有指定axis,默认对所有的数据相加

python0开头的整数数字 python中0和1_python0开头的整数数字_02

axis=0表示第一个维度,axis=1表示第二个维度,以此类推(是几维数组就有几个维度)

若指定了axis=0,则沿着第一个维度的方向进行计算

此例中,第一个维度的数据为[1,2,3] [4,5,6] [1,3,5] [2,4,6] 即data[0],data[1],data[2],data[3]

将这个维度下的数据在这个维度变动的方向上计算/比较

python0开头的整数数字 python中0和1_数据_03

python0开头的整数数字 python中0和1_python0开头的整数数字_04

若指定了axis=1,则沿着第二个维度的方向进行计算

此例中,第二个维度的数据为1 2 3, 4 5 6 ,1 3 5 ,2 4 6 即data[0][0] data[0][1] data[0][2], data[1][0] ...data[3][2] ,即具体到每一个值( 最里面[ ]里面的数据)

将这个维度的数据沿着这个维度变动的方向进行计算

python0开头的整数数字 python中0和1_python0开头的整数数字_05

python0开头的整数数字 python中0和1_数组_06

2、添加/删除一行或一列(其实axis=0或者axis=1和上面的概念一样,都是在指定维度变化的方向上进行添加的数据)

python0开头的整数数字 python中0和1_python0开头的整数数字_07

在pandas中,如果没有指定axis,则默认按axis=0来计算

python0开头的整数数字 python中0和1_数据_08

若指定了axis=0,则按照第一个维度的变化方向来计算

python0开头的整数数字 python中0和1_数据_09

python0开头的整数数字 python中0和1_数据_10

若指定了axis=1,则按照第二个维度的变化方向来计算

python0开头的整数数字 python中0和1_数据_11

python0开头的整数数字 python中0和1_二维数组_12

删除数据,若指定了axis=0,则沿着第一个维度变化的方向,删除所指定的索引的数据(这里我并不认为是axis=0是指删除行数据,我觉得是删除了这个维度变化方向上的索引的数据,同理axis=1也是如此)

python0开头的整数数字 python中0和1_二维数组_13

这里是沿着第一个维度变化的方向,删除索引为2的数据

python0开头的整数数字 python中0和1_二维数组_14

删除数据,若指定了axis=1,则沿着第二个维度变化的方向,删除所指定索引的数据

python0开头的整数数字 python中0和1_二维数组_15

这里沿着第二个维度变化的反向,删除索引为2 的数据

python0开头的整数数字 python中0和1_数据_16

所以说:无论是再numpy中还是pandas中对axis的理解其实是一样的

3、扩充到多维数组:

此数组为3维数组,shape=[2,2,3]

python0开头的整数数字 python中0和1_二维数组_17

在numpy中若没有指定axis,默认对所有的数据相加

python0开头的整数数字 python中0和1_python0开头的整数数字_18

若指定axis=0,则沿着第一维变化的方向进行计算

此例中,第一维的数据为(三维数组的第一个维度):[[0,2,3],[0,3,3]] [[1,1,3],[1,1,1]] 即data[0],data[1]

将这个维度的数据沿着这个维度变动的方向进行计算,

相当于如下

python0开头的整数数字 python中0和1_python0开头的整数数字_19

python0开头的整数数字 python中0和1_数据_20

其实这里也可以验证自己计算所得是否正确,例如数组的shape=[2,2,3] ,则axis=0,计算得到的数组的维度为[2,3](就是去掉指定维度后的数组的shape),若axis=1,计算得到的数组的维度为[2,3],若axis=2,计算得到的数组的维度为[2,2]

若指定了axis=1,则沿着第二个维度变化的方向进行计算,

此例中第二个维度的数据为(二维数组的第一个维度)[0,2,3] [0,3,3] [1,3,6] [1,4,4] 即data[0][0] data[0][1] data[1][0] data[1][1]

将这个维度的数据沿着这个维度变动的方向进行计算,

python0开头的整数数字 python中0和1_数组_21

python0开头的整数数字 python中0和1_数据_22

若axis=2,则沿着第三个维度变化的方向进行计算

此例中第三个维度的数据为 0 2 3 ,0 3 3 ,1 1 3 ,1 1 1 即data[0][0][0] data[0][0][1] data[0][0][2],data[0][1][0] data[0][1][1] data[0][1][2] ……data[1][[1][2](具体的值)

将这个维度的数据沿着这个维度变化的方向进行计算

python0开头的整数数字 python中0和1_数组_23

python0开头的整数数字 python中0和1_二维数组_24

4、四维数组验证

python0开头的整数数字 python中0和1_python0开头的整数数字_25

python0开头的整数数字 python中0和1_数组_26

若指定axis=0 ,则沿着第一个维度变化的方向进行计算

此例中第一维度的数据为(四维数组的第一个维度)data[0] data[1] data[2] data[3]

将这个维度的数据沿着这个维度变动的方向进行计算,相当于data[0] +data[1]+data[2]+data[3]

python0开头的整数数字 python中0和1_python0开头的整数数字_27

若指定axis=1 ,,则沿着第二个维度变化的方向进行计算,,数据为(三维数组的第一个维度),计算相当于data[0][0] +data[0][1],data[1][0] +data[1][1],data[2][0] +data[2][1],data[3][0]+data[3][1]

python0开头的整数数字 python中0和1_二维数组_28

若指定axis=2,则沿着第三个维度变化的方向进行计算,数据为(二维数组的第一个维度)

python0开头的整数数字 python中0和1_python0开头的整数数字_29

python0开头的整数数字 python中0和1_数据_30

若指定axis=3,则沿着第四个维度变化的方向进行计算,数据为具体的数

python0开头的整数数字 python中0和1_二维数组_31

python0开头的整数数字 python中0和1_python0开头的整数数字_32

5、补充:

np.sort()排序

python0开头的整数数字 python中0和1_二维数组_33

python0开头的整数数字 python中0和1_数据_34

np.prod()乘积(product)

python0开头的整数数字 python中0和1_二维数组_35

 

 

ps:如果有不对的地方,欢迎指正~