Python:numpy中的轴和pandas中的轴

由于对于这里面当中的理论不是太懂,所以我会直接从一个例子入手。

1.Numpy中的轴

先以2维数组为例

import numpy as np
#创建一个三维数组
data=np.arange(24).reshape(4,6)
print(data)

代码输出结果如下:

为了方面展示,我们将2维数组的元素及其索引都通过下面的表格展示出来。具体如下:

0  [0,0]1 [0,1]2 [0,2]3 [0,3]4 [0,4]5 [0,5]
6 [1,0]7 [1,1]8 [1,2]9 [1,3]10 [1,4]11 [1,5]
12 [2,0]13 [2,1]14 [2,2]15 [2,3]16 [2,4]17 [2,5]
18 [3,0]19 [3,1]20 [3,2]21 [3,3]22 [3,4]23 [3,5]

下面我们将data中的shape和axis之间的关系:

  • 上述代码中的shape中的(4,6),其中4代表的是axis=0轴上的维度,而6对应的是axis=1轴上的维度。

下面我们来看看按轴求和之后的结果。

data_axis0=data.sum(axis=0)
data_axis1=data.sum(axis=1)
print(data_axis0)
print(data_axis1)
  • 先来看按axis=0轴合并之后的结果(data_axis0)
364044485256

下面来具体的看看以上的结果是如何计算出来的:(下面仅以36和40的计算过程为例)

36=0[0,0]+6[1,0]+12[2,0]+18[3,0] ,可以发现,这些元素在axis=0上的索引不同,而在axis=1轴上的索引是相同的。

40=1 [0,1]+7[1,1]+13[2,1]+19[3,1], 可以发现,这些元素在axis=0轴上索引不同,但是在axis=1轴上的索引是相同的。

  • 再来看按axis=1轴合并之后的结果(data_axis1)
155187123

15=0[0,0]+1[0,1]+2[0,2]+3[0,3]+4[0,4]+5[0,5] ,可以发现这些元素在axis=0轴上的索引相同,而在axis=1轴上的索引不同。

51=6[1,0]+7[1,1]+8[1,2]+9[1,3]+10[1,4]+11[1,5],可以发现这些元素在axis=0轴上的索引相同,而在axis=1轴上的索引不同。

综上可以发现,numpy中按axis=i轴进行合并操作的时候,而相当于将所有其他轴上的索引相同的元素进行合并。

2.Pandas中的轴

import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(24).reshape(4,6),index=list('1234'),columns=list('ABCDEF'))
print(df)
df_axis0=df.sum(axis=0)
print(df_axis0)
df_axis1=df.sum(axis=1)
print(df_axis1)

代码运行结果如下:

axis=0轴进行合并的结果:

 axis=1轴进行合并的结果:

所以在pandas中axis=0实际上是映射到column上的,而axis=1映射到index上,仅就这两个轴的反向,pandas与numpy是相反的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值