目录
前言
在 NumPy、Pandas 和 apply 函数中,axis 参数用于指定操作的方向。
一、NumPy 中的 axis
知识点
在 NumPy 中,axis 用于定义数组的操作方向:
- axis=0:沿着行(垂直方向)操作,即对每一列执行操作
- axis=1:沿着列(水平方向)操作,即对每一行执行操作
示例
import numpy as np
arr = np.array([[1, 2], [3, 4]])
# 沿着 axis=0 求和
np.sum(arr, axis=0) # 输出: array([4, 6]) → 对每列求和
# 沿着 axis=1 求和
np.sum(arr, axis=1) # 输出: array([3, 7]) → 对每行求和
二、Pandas DataFrame 中的 axis
知识点
在 Pandas 中,axis 的含义与 NumPy 类似,但更直观:
- axis=0 或 'index':表示按行操作(即针对每一列执行操作)
- axis=1 或 'columns':表示按列操作(即针对每一行执行操作)
示例
import pandas as pd
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
# 沿着 axis=0 求和
df.sum(axis=0) # 输出: A 3, B 7 → 对每列求和
# 沿着 axis=1 求和
df.sum(axis=1) # 输出: 0 4, 1 6 → 对每行求和
三、apply 函数中的 axis
知识点
apply 是 Pandas 提供的一个非常强大的函数,允许用户对 DataFrame 或 Series 应用自定义函数。axis 参数决定了函数是应用于行还是列:
- axis=0 或 'index':默认值,函数会被应用到每一列上
- axis=1 或 'columns':函数会被应用到每一行上
示例
def my_func(x):
return x.max() - x.min()
# 默认 axis=0 → 对每列应用函数
df.apply(my_func)
# 设置 axis=1 → 对每行应用函数
df.apply(my_func, axis=1)
四、总结对比
五、实际应用示例
1. 计算每列的最大值
df.apply(lambda x: x.max()) # axis=0,默认行为
2. 计算每行的平均值
df.apply(lambda x: x.mean(), axis=1)
3. 使用 NumPy 的函数
np.mean(df, axis=0) # 计算每列的均值
np.mean(df, axis=1) # 计算每行的均值