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
(可选) - 计算平均值的轴(可以是int
或tuple of int
)dtype
(可选) - 用于计算平均值的数据类型(datatype
)out
(可选) - 输出存储位置(ndarray
)keepdims
(可选) - 指定是否保留原始数组的形状(bool
)where
(可选) - 要包含在平均值计算中的元素(array of bool
)
注意事项
默认值为
axis = None
,即数组被展平,并计算整个数组的平均值。dtype = None
,即对于整数,取float
,否则平均值的类型与元素类型相同。- 默认情况下,不传递
keepdims
和where
。
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)
通过对所有元素进行平均来计算整个数组的平均值。

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

当沿 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 参数
如果设置 keepdims
为 True
,则保留原始数组的维度并将其传递到结果平均值数组中。
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]