NumPy 教程 之 NumPy 统计函数 8

简介: 这段内容介绍了 NumPy 中的 `numpy.average()` 函数,该函数用于计算数组中元素的加权平均值。可以通过设置 `axis` 参数指定计算的轴,`weights` 参数用于指定权重,默认为等权重。示例展示了如何在一维和多维数组中使用此函数,并通过 `returned=True` 返回加权平均值和权重总和。

NumPy 教程 之 NumPy 统计函数 8

NumPy 统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。

numpy.average()

numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。

加权平均值即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。

考虑数组[1,2,3,4]和相应的权重[4,3,2,1],通过将相应元素的乘积相加,并将和除以权重的和,来计算加权平均值。

加权平均值 = (14+23+32+41)/(4+3+2+1)

函数语法:

numpy.average(a, axis=None, weights=None, returned=False)

参数说明:

a: 输入的数组,可以是一个 NumPy 数组或类似数组的对象。
axis: 可选参数,用于指定在哪个轴上计算加权平均值。如果不提供此参数,则计算整个数组的加权平均值。可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
weights: 可选参数,用于指定对应数据点的权重。如果不提供权重数组,则默认为等权重。
returned: 可选参数,如果为True,将同时返回加权平均值和权重总和。

在多维数组中,可以指定用于计算的轴。

实例

import numpy as np

a = np.arange(6).reshape(3,2)
print ('我们的数组是:')
print (a)
print ('\n')
print ('修改后的数组:')
wt = np.array([3,5])
print (np.average(a, axis = 1, weights = wt))
print ('\n')
print ('修改后的数组:')
print (np.average(a, axis = 1, weights = wt, returned = True))

输出结果为:

我们的数组是:
[[0 1]
[2 3]
[4 5]]

修改后的数组:
[0.625 2.625 4.625]

修改后的数组:
(array([0.625, 2.625, 4.625]), array([8., 8., 8.]))

目录
相关文章
|
9天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 4
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或数学表达式。
22 4
|
10天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 2
不同于ndarray,matlib函数生成的是矩阵形式。教程中详细解释了矩阵的概念,并介绍了转置矩阵的实现方式,使用T属性或函数实现。此外,还展示了如何利用`matlib.empty()`创建指定形状的新矩阵,并可选择数据类型及顺序。最后通过示例演示了矩阵填充随机数据的方法。
21 3
|
3天前
|
存储 Python
NumPy 教程 之 NumPy IO 1
NumPy IO 教程介绍了如何使用 NumPy 读写文本及二进制数据。教程覆盖了 `.npy` 和 `.npz` 格式的文件操作,其中 `save()` 和 `load()` 函数用于单个数组的存取,而 `savez()` 则可以保存多个数组。文本文件处理则由 `loadtxt()` 和 `savetxt()` 完成。通过示例展示了 `numpy.save()` 函数的具体用法,并解释了其参数含义,如文件名、数组对象以及序列化选项等。
21 10
|
3天前
|
Serverless Python
NumPy 教程 之 NumPy 线性代数 7
NumPy 的 `linalg` 库提供了丰富的线性代数功能,如点积、矩阵乘法、求解线性方程等。`numpy.linalg.inv()` 用于计算矩阵的乘法逆矩阵,即找到满足 `AB=BA=E` 的矩阵 `B`,其中 `E` 是单位矩阵。示例展示了如何对矩阵 `A` 计算其逆矩阵 `A^(-1)` 并求解线性方程 `A^(-1)B`,得到向量 `[5, 3, -2]` 作为解。
22 10
|
5天前
|
索引 Python
NumPy 教程 之 NumPy 线性代数 4
NumPy 的线性代数库 `linalg` 提供了丰富的线性代数功能,如点积(`dot`)、向量点积(`vdot`)、内积(`inner`)、矩阵积(`matmul`)、行列式(`determinant`)、求解线性方程(`solve`)和矩阵逆(`inv`)。其中,`numpy.matmul` 用于计算两个数组的矩阵乘积,支持多维数组操作。
30 11
|
7天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 8
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或表达式。教程中讲解了如何使用`numpy.matlib.rand()`创建指定大小且元素随机填充的矩阵,并演示了矩阵与ndarray之间的转换方法。此外,还介绍了如何使用T属性进行矩阵转置。示例代码展示了创建矩阵、将其转换为ndarray以及再转回矩阵的过程。
26 9
|
1天前
|
Python
NumPy 教程 之 NumPy Matplotlib 2
Matplotlib 是 Python 的绘图库,能与 NumPy 结合使用,提供 MatLab 的开源替代方案,并支持 PyQt 和 wxPython 等图形工具包。由于 Matplotlib 默认不支持中文,可以使用思源黑体等字体或系统自带的中文字体(如仿宋)解决这一问题,通过指定字体路径或设置 `plt.rcParams['font.family']` 来实现中文显示。
8 1
|
1天前
|
存储 Ubuntu 数据可视化
NumPy 教程 之 NumPy Matplotlib 1
Matplotlib作为Python的绘图库,能够与NumPy结合使用,提供了类似MatLab的开源替代方案,并支持与PyQt和wxPython等图形工具包一同使用。本教程将指导你如何在不同系统环境下安装matplotlib,并通过实例演示如何利用它进行数据可视化,包括创建坐标轴标签、绘制线性图表并展示结果。
9 1
|
4天前
|
Python
NumPy 教程 之 NumPy 线性代数 6
NumPy 的 `linalg` 库提供了多种线性代数功能,如 `dot`(点积)、`vdot`(向量点积)、`inner`(内积)、`matmul`(矩阵积)、`determinant`(行列式)、`solve`(求解线性方程)和 `inv`(计算逆矩阵)。`numpy.linalg.solve()` 可用于求解线性方程组,例如将方程组 `x + y + z = 6`、`2y + 5z = -4` 和 `2x + 5y - z = 27` 转换为矩阵形式 `AX = B` 并求解。
12 4
|
6天前
|
Serverless Python
NumPy 教程 之 NumPy 线性代数 2
NumPy 的线性代数函数库 `linalg` 提供了丰富的线性代数功能,如 `dot`、`vdot`、`inner`、`matmul`、`determinant`、`solve` 和 `inv` 等。示例展示了 `numpy.vdot()` 函数计算两个数组的点积,即使参数是多维数组也会被展开进行计算。
14 6