Python的np.mean函数及其应用

发布时间:2023-05-21

一、np.mean函数介绍

np.mean函数是numpy库中的一个函数,主要用于计算数组中元素的平均值。它可以计算整个数组的平均值,也可以沿着指定的轴计算平均值。 np.mean函数的语法如下:

numpy.mean(arr, axis=None, dtype=None, out=None, keepdims=False)

参数解释:

  • arr: 表示要计算平均值的数组。
  • axis: 表示计算平均值沿着哪个轴。默认为计算整个数组的平均值。
  • dtype: 表示返回结果的数据类型。默认情况下,与arr的数据类型相同。
  • out: 表示存储结果的数组。
  • keepdims: 表示是否保留轴的维度。默认为False。

二、计算整个数组的平均值

当axis=None时,np.mean函数将计算整个数组的平均值。下面是一个示例:

import numpy as np
arr = np.array([[1, 2], [3, 4]])
mean_value = np.mean(arr)
print(mean_value)
# output: 2.5

在上面的代码中,我们定义了一个2x2的数组arr,并使用np.mean计算了整个数组的平均值。最后,输出结果为2.5。

三、沿着轴计算平均值

当axis参数不为None时,np.mean函数会沿着指定的轴计算平均值。下面是一个示例:

import numpy as np
arr = np.array([[1, 2], [3, 4]])
mean_value_axis_0 = np.mean(arr, axis=0)
mean_value_axis_1 = np.mean(arr, axis=1)
print(mean_value_axis_0)
# output: [2. 3.]
print(mean_value_axis_1)
# output: [1.5 3.5]

在上面的代码中,我们分别使用axis参数为0和1的np.mean函数计算了数组arr沿着轴0和轴1的平均值。最后,输出结果分别为[2.0, 3.0]和[1.5, 3.5]。

四、使用dtype参数控制输出结果的数据类型

当我们需要控制输出结果的数据类型时,可以使用dtype参数。下面是一个示例:

import numpy as np
arr = np.array([[1, 2], [3, 4]], dtype=np.float32)
mean_value = np.mean(arr, dtype=np.int8)
print(mean_value)
# output: 2

在上面的代码中,我们使用dtype参数指定结果的数据类型为int8。最后,输出结果为2。

五、使用out参数指定存储结果的数组

当我们需要指定存储结果的数组时,可以使用out参数。下面是一个示例:

import numpy as np
arr = np.array([[1, 2], [3, 4]], dtype=np.float32)
out_arr = np.empty((2,), dtype=np.float32)
mean_value = np.mean(arr, axis=0, out=out_arr)
print(mean_value)
# output: [2. 3.]
print(out_arr)
# output: [2. 3.]

在上面的代码中,我们使用out参数指定了存储结果的数组out_arr,并使用axis参数为0的np.mean函数计算了数组arr沿着轴0的平均值。最后,输出结果为[2.0, 3.0],并且存储在数组out_arr中。

六、使用keepdims参数保留轴的维度

当我们希望保留轴的维度时,可以使用keepdims参数。下面是一个示例:

import numpy as np
arr = np.array([[1, 2], [3, 4]])
mean_value_axis_0 = np.mean(arr, axis=0, keepdims=True)
mean_value_axis_1 = np.mean(arr, axis=1, keepdims=True)
print(mean_value_axis_0)
# output: [[2. 3.]]
print(mean_value_axis_1)
# output: [[1.5], [3.5]]

在上面的代码中,我们使用keepdims参数保留了轴的维度,并使用axis参数为0和1的np.mean函数计算了数组arr沿着轴0和轴1的平均值。最后,输出结果分别为[[2.0, 3.0]]和[[1.5], [3.5]]。