您的位置:首页 >向量自相关加权和高效计算方法
发布于2026-04-10 阅读(0)
扫一扫,手机访问

本文介绍一种基于 NumPy 矩阵运算的向量化方法,用于高效计算给定二维数组各行与全数组点积之和,并按位移步长 $ t $ 进行归一化,避免 Python 显式循环,显著提升性能。
本文介绍一种基于 NumPy 矩阵运算的向量化方法,用于高效计算给定二维数组各行与全数组点积之和,并按位移步长 $ t $ 进行归一化,避免 Python 显式循环,显著提升性能。
在时间序列分析、信号处理或统计建模中,常需对数据矩阵按“滞后”(lag)维度执行类似自相关结构的聚合计算:对每个起始行索引 $ t $,取第 $ t $ 行作为权重向量,与整个数据矩阵做逐行点积,再对所有点积结果求和,并除以有效样本数 $ n - t $。若用传统 for 循环实现,不仅代码冗长,且在大数据量下效率低下。
幸运的是,该操作可完全向量化。核心洞察在于:
以下是简洁、高效的实现:
import numpy as np
my_data = np.array([
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5]
])
n = len(my_data)
# 向量化计算:t ∈ [0, 1, ..., n-1]
t_values = np.arange(n)
gram_matrix = my_data @ my_data.T # shape: (n, n)
result = gram_matrix.sum(axis=0) / (n - t_values)
print(result)
# 输出: [ 9. 22.5 45. 90. 225. ]✅ 关键优势:
⚠️ 注意事项:
综上,该向量化方案是兼顾简洁性、性能与可维护性的最佳实践,适用于大多数中等规模科学计算场景。
上一篇:微信表情发送失败解决方法
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9