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