Python中axis函数使用用法介绍(详解Python中的axis参数)

本文将从多个方面对Python中的axis函数进行详细阐述,包括对axis参数的解释、常见应用场景、对比其他函数和实用技巧。

一、axis函数的解释

在Python的numpy库中,axis函数表示数组中被压缩的维度。它在进行数组的求和、平均值、最大值、最小值等计算时,用于指定计算的方向和范围。

import numpy as np
a = np.array([[1,2],[3,4]])
# 对整个数组求和
np.sum(a)
# 输出结果为:10
# 对数组的每一列求和
np.sum(a, axis=0)
# 输出结果为:[4 6]
# 对数组的每一行求和
np.sum(a, axis=1)
# 输出结果为:[3 7]

二、常见应用场景

axis函数在数据分析和机器学习领域有着广泛的应用。以下是几个常见的应用场景:

1、计算数组的平均值

在数据分析中,经常需要计算某些指标在样本中的平均值。例如以下代码中,我们计算了每个班级的学生人数和平均分。

import numpy as np
scores = np.array([[90, 80, 85], [60, 70, 75], [80, 85, 70]])
# 计算每个班级学生人数和平均分
class_size = np.sum(scores > 0, axis=1)
class_avg = np.mean(scores, axis=1)
print(class_size) # 输出结果为:[3 3 3]
print(class_avg) # 输出结果为:[85. 68.33333333 78.33333333]

2、求取数组的最大值和最小值

在机器学习中,常常需要对数据进行标准化处理,即将数值范围缩放到0和1之间。这时候就需要求取每个特征的最大值和最小值。以下是示例代码:

import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 求取每个特征的最大值和最小值
max_val = np.max(data, axis=0)
min_val = np.min(data, axis=0)
# 将数据缩放到0和1之间
scaled_data = (data - min_val) / (max_val - min_val)
print(scaled_data) # 输出结果为:[[0. 0.11111111 0.22222222]
                  #               [0.33333333 0.44444444 0.55555556]
                  #               [0.66666667 0.77777778 0.88888889]]

三、与其他函数的对比

除了axis函数外,numpy库还提供了许多其他常用的计算函数。以下代码将对比axis函数与其他函数的使用效果。

1、sum、mean、max、min函数

这些函数都可以计算数组的和、平均值、最大值和最小值,但是在处理多维数组时需要指定axis参数。

import numpy as np
a = np.array([[1,2],[3,4]])
# 对整个数组求和
np.sum(a)
# 输出结果为:10
# 对数组的每一列求和
np.sum(a, axis=0)
# 输出结果为:[4 6]
# 对数组的每一行求和
np.sum(a, axis=1)
# 输出结果为:[3 7]

2、argmax、argmin函数

这两个函数可以返回数组中最大值和最小值的下标,但是在处理多维数组时也需要指定axis参数。

import numpy as np
a = np.array([[1,2],[3,4]])
# 返回最大值的下标
np.argmax(a)
# 输出结果为:3
# 返回每一列最大值的下标
np.argmax(a, axis=0)
# 输出结果为:[1 1]
# 返回每一行最大值的下标
np.argmax(a, axis=1)
# 输出结果为:[1 1]

四、实用技巧

下面是一些在Python中使用axis函数时的实用技巧。

1、使用负数索引指定倒数第几个维度

numpy中的负数索引可以指代相对位置,例如-1表示最后一个维度,-2表示倒数第二个维度。

import numpy as np
a = np.array([[1,2],[3,4]])
# 对第一维进行求和
np.sum(a, axis=-2)
# 输出结果为:[4 6]
# 对第二维进行求和
np.sum(a, axis=-1)
# 输出结果为:[3 7]

2、使用None指定新的维度

使用None可以在数组中添加新的维度,例如以下代码:

import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
# 对两个数组按行合并
np.stack((a, b), axis=0)
# 输出结果为:[[1 2 3]
#              [4 5 6]]
# 对两个数组按列合并
np.stack((a, b), axis=1)
# 输出结果为:[[1 4]
#              [2 5]
#              [3 6]]

总结

本文从axis函数的解释、常见应用、与其他函数的对比和实用技巧等方面对Python中axis函数进行了详细的阐述,希望能够对使用者有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注