转自:http://blog.csdn.net/wangying19911991/article/details/73928172
https://www.zhihu.com/question/58993137
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时分别代表的含义:
另外,记住,Pandas保持了Numpy对关键字axis的用法,用法在Numpy库的词汇表当中有过解释:
轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
所以问题当中第一个列子 df.mean(axis=1)代表沿着列水平方向计算均值,而第二个列子df.drop(name, axis=1) 代表将name对应的列标签(们)沿着水平的方向依次删掉。
相关推荐
### Python之NumPy(axis=0 与axis=1)区分详解 #### 一、NumPy中的Axis概念 在NumPy库中,`axis`参数是一个非常重要的概念,它用于指定数组操作的方向。对于多维数组而言,理解`axis`的概念至关重要,尤其是在进行...
### numpy库与pandas库中的Axis参数详解 在数据分析领域,`numpy`和`pandas`是两个极其重要的Python库。这两个库提供了大量的工具来处理数值数据和结构化数据。其中一个核心概念是“axis”,它定义了数据操作的方向...
之前一直搞不清axis = 0 和 axis = 1 之间的区别,一会是按行求和,一会是按列遍历,那到底axis是咋操作的呢?查找了些资料,发现了一种很好的解释就是: 0轴垂直往下,1轴向右水平延伸。 啥意思?? 尝试一下好了 ...
axis=-1,0,1的含义 axis的本意是轴的意思。 在python中,axis代表的是多维数组中数据操作的方向。 举例说明,在pycharm环境创建一个三维数组: import numpy as np import tensorflow as tf b = np.arange(27)....
它与Python的列表不同,ndarray的元素类型是固定的,而且在创建时就决定了大小,这使得在执行运算时具有更高的效率。 在Numpy中,数组的维度被称为轴(axis),轴的长度表示每个维度上的元素数量。例如,一个2×3的二...
### Python NumPy 实现 Rolling 滚动案例详解 #### 一、背景介绍 在数据分析领域,特别是处理时间序列数据时,经常会遇到需要基于固定长度的窗口进行滚动计算的需求,例如计算移动平均值(Moving Average)。尽管 ...
index_max = np.argmax(x, axis=1)# 其中,axis=1表示按行计算 print(index_max.shape) max = x[range(x.shape[0]), index_max] print(max) # 注意到这里返回的是行向量 # 这可以是一种通用的方法, # 其中range()...
- **简介**:NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy是Python进行科学计算的基础库。 - **安装**:可通过pip或...
NumPy是Python中科学计算的核心库,它提供了高性能的多维数组对象以及与这些数组相关的工具。对于数据科学家、研究人员及工程师来说,掌握NumPy的基本操作至关重要。通过NumPy,用户可以高效地处理大量数值数据,...
此外,Numpy还支持广播规则,允许不同形状的数组进行运算,以及轴向操作,如`np.sum(arr, axis=0)`对列求和,`np.sum(arr, axis=1)`对行求和。 希望这些例子和解释有助于你理解和应用NumPy进行数据统计分析。在实践...
在数据分析领域,Python库NumPy、Pandas和seaborn是不可或缺的工具。NumPy提供了强大的数值计算功能,Pandas则用于数据处理和管理,而seaborn则是基于matplotlib的数据可视化库,它提供了丰富的统计图形选项。在这个...
在Python编程环境中,Numpy库是进行数值计算和科学计算的核心工具。Numpy引入了“数组”这一概念,这是因为在很多科学计算场景下,数组运算的效率和灵活性比普通的Python列表更为重要。数组对象(ndarray)允许我们...
Python的NumPy库是科学计算的核心库,它提供了强大的N维数组对象以及各种与之相关的工具。本资料主要探讨了Python NumPy的一些基础操作和结果展示。虽然标签中提到了"C#",但在这个主题下,我们将专注于Python的...
NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy可以看作是Python的数据处理基础,它使得Python成为一种强大的科学计算语言...
`axis=0`表示沿列方向计算,而`axis=1`表示沿行方向计算。 1. 按照行求平均值(`axis=1`): 当我们设置`axis=1`时,`mean()`函数会计算每一行的平均值,并返回一个新的数组,其中每个元素是对应原数组一行的平均值...
这里,`(df == 0)`创建了一个与df形状相同的布尔DataFrame,`astype(int)`将其转换为整数类型,True变成1,False变成0,然后使用`sum(axis=1)`沿行方向求和,得到一个Series,表示每行的零值数量。 总的来说,理解...
例如,在统计学中,我们可以使用`axis=1`对每个样本的特征进行求和,或者在机器学习中,`axis=0`可以用来计算特征的平均值或总和。 总之,`numpy.array.sum(axis=?)`是NumPy中强大的工具,它能够根据需要在不同维度...
`axis`参数在numpy中扮演着关键角色,例如在排序操作中,`axis=1`表示按照行进行排序,而`axis=0`则按列排序。这允许我们灵活地处理二维数组和矩阵。 `str.format()`方法用于格式化输出,如示例所示,它能帮助我们...
4. **索引与切片**:Numpy数组的索引与Python列表类似,但支持多维切片。 示例: ```python arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr[0, 1]) # 输出:2 print(arr[1:]) # 输出:[[4, 5, 6]] ``` **...