标签:axis 索引 维数 current col 指正 地方 blog 数据
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[1][0] +data[2][0] +data[3][0]
若指定axis=2,则沿着第三个维度变化的方向进行计算,数据为(二维数组的第一个维度)
若指定axis=3,则沿着第四个维度变化的方向进行计算,数据为具体的数
5、补充:
np.sort()排序
np.prod()乘积(product)
ps:如果有不对的地方,欢迎指正~
标签:axis 索引 维数 current col 指正 地方 blog 数据
原文地址:https://www.cnblogs.com/mwcherish/p/11855689.html