SciPy - weighted() 方法

SciPy weighted() 方法不被视为内置方法,因为它允许用户执行各种其他函数,例如加权均值、加权总和和加权运算。

此外,为了更好地说明,我们有更可靠的调查数据,并且在时间序列数据中,当前观察可能会被赋予更大的权重。

语法

以下是 SciPy weighted() 方法中各种相关函数 −

sum()
or,
sqrt()
or,
linregress()

参数

以下是上述所有语法 − 的解释

  • sum():计算给定数据的总和。
  • sqrt():求一个数的平方根。
  • linregress():它对给定的两组测量值进行线性最小二乘回归。

返回值

它以浮点值的形式返回结果。

示例 1

以下是 SciPy weighted() 方法使用指定的权重计算给定数据数组的平均权重。

import numpy as np
from scipy.stats import hmean

data = np.array([10, 20, 30, 40, 50])
weights = np.array([1.1, 1.2, 1.3, 1.4, 1.5])

avg_weight = np.average(data, weights = weights)
print("Weighted Harmonic Mean:", avg_weight)

输出

上述代码产生以下结果 −

Weighted Harmonic Mean: 31.53846153846154

示例 2

以下示例对考虑指定权重的数据 x 和 y 执行线性回归任务。

from scipy import stats
import numpy as np

x_axis = np.array([11, 12, 13, 14, 15])
y_axis = np.array([26, 37, 58, 79, 100])
weights = np.array([0.5, 0.5, 1, 1, 1])

# 加权线性回归
slope, intercept, r_value, p_value, std_err = stats.linregress(x_axis, y_axis)
print(f"Slope: {slope}, Intercept: {intercept}")

输出

上述代码产生以下结果 −

Slope: 19.0, Intercept: -187.0

示例 3

此示例说明了包含加权统计数据的数据的详细描述。

import numpy as np

data = np.array([11, 21, 31, 41, 51])
weights = np.array([0.11, 0.12, 0.13, 0.14, 0.15])

# 加权平均值
weighted_mean = np.sum(data * weights) / np.sum(weights)

# 加权标准差
weighted_std = np.sqrt(np.sum(weights * (data - weighted_mean)**2) / np.sum(weights))

print(f"Weighted Mean: {weighted_mean:.2f}")
print(f"Weighted Standard Deviation: {weighted_std:.2f}")

输出

上述代码产生以下结果 −

Weighted Mean: 3.67
Weighted Standard Deviation: 1.25

scipy_reference.html