14赞
508
当前位置:  开发笔记 > 编程语言 > 正文

Python之NumPy(axis=0与axis=1)区分详解

这篇文章主要介绍了Python之NumPy(axis0与axis1)区分详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码:

>>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \
columns=["col1", "col2", "col3", "col4"])
>>>df
  col1 col2 col3 col4
  0   1   1   1   1
  1   2   2   2   2
  2   3   3   3   3

如果我们调用df.mean(axis=1),我们将得到按行计算的均值

>>> df.mean(axis=1)
0  1
1  2
2  3

然而,如果我们调用 df.drop((name, axis=1),我们实际上删掉了一列,而不是一行:

>>> df.drop("col4", axis=1)
  col1 col2 col3
0   1   1   1
1   2   2   2
2   3   3   3

Can someone help me understand what is meant by an "axis" in pandas/numpy/scipy?

有人能帮我理解一下,在pandas、numpy、scipy三都当中axis参数的真实含义吗?

投票最高的答案揭示了问题的本质:

其实问题理解axis有问题,df.mean其实是在每一行上取所有列的均值,而不是保留每一列的均值。也许简单的来记就是axis=0代表往跨行(down),而axis=1代表跨列(across),作为方法动作的副词(译者注)

换句话说:

  • 使用0值表示沿着每一列或行标签\索引值向下执行方法
  • 使用1值表示沿着每一行或者列标签模向执行对应的方法

下图代表在DataFrame当中axis为0和1时分别代表的含义:

axis参数作用方向图示

另外,记住,Pandas保持了Numpy对关键字axis的用法,用法在Numpy库的词汇表当中有过解释:

轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。

所以问题当中第一个列子 df.mean(axis=1)代表沿着列水平方向计算均值,而第二个列子df.drop(name, axis=1) 代表将name对应的列标签(们)沿着水平的方向依次删掉。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

推荐阅读
  • Pandas和Numpy大家都不陌生了,代码运行后数据都加载到RAM中,如果数据集特别大,我们就会看到内存飙升。但有时要处理的数据并不适合RAM,这时候Dask来了。 ... [详细]
  • Python教程栏目介绍使用python的statsmodels模块拟合ARIMA模型,方法简洁,有需要的朋友可以看看。 ... [详细]
  • python编程用法良好,本文会介绍常见的几种循环结构,并且有几个具体的编程示例,有需要的朋友可以看看,一起讨论讨论。 ... [详细]
  • 导入必要通用模块importpandasaspdimportmatplotlib.pyplotaspltimportosimportnumpyasnpimportcopyimportreimportmath一机器学习通用框架:以knn为例#利用邻近点方式训练数据不太适用于高维数据fromsklearn.model_selectionimporttrain_test_split#将数据分为测试集和训练集fromsklearn.neighborsi ... [详细]
  • python中eval的用法:将字符串str当成有效的表达式来求值并返回计算结果,语法为【eval(source[,globals[,locals]])->value】。 ... [详细]
  • python关闭线程的方法:首先导入threading,定义一个方法;然后定义线程,target指向要执行的方法,启动它;最后停止线程,代码为【stop_thread(myThread)】。 ... [详细]
  • python判断字符串是否为整数的方法:首先可以根据字符串的第一个字符确定整数的正负;然后对字符串从右向左遍历,例如111,可以看成【11*10+1】,而11又可以看成【1*10+1】。 ... [详细]
  • 打python的三引号的方法:1、直接使用三个反斜杠进行转义;2、新建模块,在模块当中输入【a"\""print(a+a+a)】;3、通过ord函数来获取一个字符的ASCII编码值。 ... [详细]
  • Python很早就引入了装饰器,作为一种简化函数和方法定义方式的机制,这些函数和方法在初始定义之后必须进行修改。这样做的最初动机之一是,使用classmethod和staticmethod等函数来转换方法的原始定义,但是它们需要额外的一行代码来修改函数的初始定义。一般来说,每次必须对函数应用转换时,我们必须使用modifier函数调用它,然后将它重新分配到函数初始定义时的名称中。 ... [详细]
  • python内置函数有:abs、divmod、max、min、pow、round、sum、bool、int、float、complex、str、bytearray、bytes、memoryview、ord、oct、tuple、map等等。 ... [详细]
devbox
煭敻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4