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])

# Weighted linear regression
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
weighted_mean = np.sum(data * weights) / np.sum(weights)

# weighted standard deviation
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.htm
广告