numpy库与pandas库axis=0,axis= 1轴的用法详解

yipeiwu_com5年前Python基础

对数据进行操作时,经常需要在横轴方向或者数轴方向对数据进行操作,这时需要设定参数axis的值:

  • axis = 0 代表对横轴操作,也就是第0轴;
  • axis = 1 代表对纵轴操作,也就是第1轴;

numpy库中横轴、纵轴 axis 参数实例详解:

In [1]: import numpy as np
#生成一个3行4列的数组
In [2]: a = np.arange(12).reshape(3,4)
In [3]: a
Out[3]:
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])
#axis= 0 对a的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算
In [4]: a.sum(axis = 0)
Out[4]: array([12, 15, 18, 21])
#axis= 1 对a的纵轴进行操作,在运算的过程中其运算的方向表现为横向运算
In [5]: a.sum(axis = 1)
Out[5]: array([ 6, 22, 38])

pandas库DataFrame中横轴、纵轴 axis 参数实例详解:

In [8]: b = pd.DataFrame(np.arange(24).reshape(4,6))
In [9]: b
Out[9]:
  0  1  2  3  4  5
0  0  1  2  3  4  5
1  6  7  8  9 10 11
2 12 13 14 15 16 17
3 18 19 20 21 22 23
#axis= 0 对b的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算
In [10]: b.sum(axis = 0)
Out[10]:
0  36
1  40
2  44
3  48
4  52
5  56
dtype: int64
#axis= 1 对b的横轴进行操作,在运算的过程中其运算的方向表现为纵向运算
In [11]: b.sum(axis = 1)
Out[11]:
0   15
1   51
2   87
3  123
dtype: int64

pandas库panel中axis 参数实例详解:

In [18]: np.arange(24).reshape(2,3,4)
Out[18]:
array([[[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]],
 
    [[12, 13, 14, 15],
    [16, 17, 18, 19],
    [20, 21, 22, 23]]])
#生成面板数据
In [19]: c = pd.Panel(np.arange(24).reshape(2,3,4))
In [24]: c
Out[24]:
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 4 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 2
Minor_axis axis: 0 to 3
#对Items axis轴的数据进行操作,也就是panel里面的0轴:
In [20]: c.sum(axis = 0)
Out[20]:
  0  1  2  3
0 12 14 16 18
1 20 22 24 26
2 28 30 32 34
对Major_axis axis轴的数据进行操作
In [21]: c.sum(axis = 1)
Out[21]:
  0  1
0 12 48
1 15 51
2 18 54
3 21 57
对Minor_axis axis轴的数据进行操作
In [22]: c.sum(axis = 2)
Out[22]:
  0  1
0  6 54
1 22 70
2 38 86

如果是2维数组,先横轴后纵轴;如果是3维数组,先最外层,然后一层一层按照先横轴再纵轴的逻辑进行匹配轴。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法

Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法

今天在网上copy的一段代码,代码很简单,每行看起来该缩进的都缩进了,运行的时候出现了如下错误:  【解决过程】  1.对于此错误,最常见的原因是,的确没有缩进。...

DJANGO-URL反向解析REVERSE实例讲解

DJANGO-URL反向解析REVERSE实例讲解

解决path中带参数的路径。 reverse(viewname,urlconf=None,args=None,Kwargs=None,current_app=None) book/vie...

Python的Django框架中settings文件的部署建议

django在一个项目的目录结构划分方面缺乏必要的规范,因此不同人的项目组织形式也千奇百怪,而且也很难说谁的做法就比较好。我根据自己的项目组织习惯,发布了一个项目dj-scaffold。...

详解如何在python中读写和存储matlab的数据文件(*.mat)

背景 在做deeplearning过程中,使用caffe的框架,一般使用matlab来处理图片(matlab处理图片相对简单,高效),用python来生成需要的lmdb文件以及做test...

TensorFlow实现iris数据集线性回归

TensorFlow实现iris数据集线性回归

本文将遍历批量数据点并让TensorFlow更新斜率和y截距。这次将使用Scikit Learn的内建iris数据集。特别地,我们将用数据点(x值代表花瓣宽度,y值代表花瓣长度)找到最优...