NumPy mean()

mean() 方法计算给定数字集沿指定轴的算术平均值。

import numpy as np

# create an array
array1 = np.array([0, 1, 2, 3, 4, 5, 6, 7])

# calculate the mean of the array avg = np.mean(array1)
print(avg) # Output: 3.5

mean() 语法

mean() 的语法是

numpy.mean(array, axis=None, dtype=None, out=None, keepdims=<no value>, where=<no value>)

mean() 参数

mean() 方法接受以下参数

  • array - 包含需要计算平均值的数字的数组(可以是 array_like
  • axis (可选) - 计算平均值的轴(可以是 inttuple of int
  • dtype (可选) - 用于计算平均值的数据类型(datatype
  • out (可选) - 输出存储位置(ndarray
  • keepdims (可选) - 指定是否保留原始数组的形状(bool
  • where (可选) - 要包含在平均值计算中的元素(array of bool

注意事项

默认值为

  • axis = None,即数组被展平,并计算整个数组的平均值。
    • dtype = None,即对于整数,取 float,否则平均值的类型与元素类型相同。
    • 默认情况下,不传递 keepdimswhere

mean() 返回值

mean() 方法返回数组的算术平均值。


示例 1:查找 ndArray 的平均值

import numpy as np

# create a 3D array
array1 = np.array([[[1, 2], [3, 4]],                     
                    [[5, 6], [7, 8]]])

# find the mean of entire array mean1 = np.mean(array1) # find the mean across axis 0 mean2 = np.mean(array1, 0) # find the mean across axis 0 and 1 mean3 = np.mean(array1, (0, 1))
print('\nMean of the entire array:', mean1) print('\nMean across axis 0:\n', mean2) print('\nMean across axis 0 and 1', mean3)

输出

Mean of the entire array: 4.5

Mean across axis 0:
[[3. 4.]
 [5. 6.]]

Mean across axis 0 and 1 [4. 5.]

当未指定 axis 参数时,np.mean(array1) 通过对所有元素进行平均来计算整个数组的平均值。

Mean of entire array
整个数组的平均值

当沿 axis=0 计算平均值时,它会给出每列(切片式)的行平均值。

Slicewise Mean
切片式平均值

当沿 axis=(0, 1) 计算平均值时,它同时计算行和列的平均值。结果数组是一个一维数组,包含整个二维数组中所有元素的平均值。

Mean along 2 axes
沿 2 个轴的平均值 (axis = (0, 1))


示例 2:指定 ndArray 平均值的数据类型

我们可以使用 dtype 参数指定输出数组的数据类型。

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])

# by default int is converted to float result1 = np.mean(arr) # get integer mean result2 = np.mean(arr, dtype = int)
print('Float mean:', result1) print('Integer mean:', result2)

输出

Float mean: 3.5
Integer mean: 3

注意: 使用较低精度的 dtype,例如 int,可能导致精度损失。


示例 3:使用可选的 keepdims 参数

如果设置 keepdimsTrue,则保留原始数组的维度并将其传递到结果平均值数组中。

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])
# keepdims defaults to False result1 = np.mean(arr, axis = 0) # set keepdims to True result2 = np.mean(arr, axis = 0, keepdims = True)
print('Original Array Dimension:', arr.ndim) print('Mean without keepdims:', result1, 'Dimensions', result1.ndim) print('Mean with keepdims:', result2, 'Dimensions', result2.ndim)

输出

Original Array Dimension: 2
Mean without keepdims: [2.5 3.5 4.5] Dimension 1
Mean with keepdims: [[2.5 3.5 4.5]] Dimensions 2

示例 4:使用 where 查找过滤后数组的平均值

我们可以使用 where 参数过滤数组,并计算过滤后数组的平均值。

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])
# mean of entire array result1 = np.mean(arr)
# mean of only even elements result2 = np.mean(arr, where = (arr%2==0)) # mean of numbers greater than 3 result3 = np.mean(arr, where = (arr > 3))
print('Mean of entire array:', result1) print('Mean of only even elements:', result2) print('Mean of numbers greater than 3:', result3)

输出

Mean of entire array: 3.5
Mean of only even elements: 4.0
Mean of  numbers greater than 3: 5.0

示例 5:使用 out 将结果存储在所需位置

out 参数允许指定一个输出数组,结果将存储在该数组中。

import numpy as np

array1 = np.array([[1, 2, 3],
                [4, 5, 6]])

# create an output array
output = np.zeros(3)

# compute mean and store the result in the output array np.mean(array1, out = output, axis = 0)
print('Mean:', output)

输出

Mean: [2.5 3.5 4.5]

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战