python axis 1_python中 axis=0 和axis=1的区别

1、先以二维数组为例:

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

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

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]

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

若指定了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] ,即具体到每一个值( 最里面[ ]里面的数据)

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

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

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

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

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

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

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

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

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

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

3、扩充到多维数组:

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

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

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

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

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

相当于如下

其实这里也可以验证自己计算所得是否正确,例如数组的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]

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

若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](具体的值)

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

4、四维数组验证

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

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

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

若指定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]

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

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

5、补充:

np.sort()排序

np.prod()乘积(product)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值