如何实现可通过Numba @jit加速的Numpy向量化版itertools.combinations?
实现Numba加速的Numpy向量化版itertools.combinations(3元组合)
我想实现一个可通过Numba的@jit装饰器进一步加速的Numpy向量化版本itertools.combinations,但不确定是否可行。我处理的是一维np.array,目标是生成3元组合。
示例代码与预期结果
import numpy as np from itertools import combinations x = np.array([1,2,3,4,5]) result_set = set(combinations(x, 3))
预期结果:
{(1, 2, 3),
(1, 2, 4),
(1, 2, 5),
(1, 3, 4),
(1, 3, 5),
(1, 4, 5),
(2, 3, 4),
(2, 3, 5),
(2, 4, 5),
(3, 4, 5)}
已调研情况
我已在技术社区搜索相关内容,但未找到匹配当前使用场景的有效方案:
- 有讨论尝试用Numpy实现多维版本的combinations,但未覆盖我的一维数组3元组合加速需求
- 有观点指出,可能很难实现比原生
itertools.combinations更快的版本
具体使用场景
- 处理存储价格数据的一维
np.array,例如price = np.array([100,101,102,103,104,105...]) - 通过
scipy.signal.argrelmax识别数组中的所有峰值 - 生成所有峰值的3元组合(后续也会扩展到4元组合)
- 对每个组合执行Numpy优化的自定义简单线性回归,根据特定
r_val阈值验证趋势线,同时会通过趋势线上下的积分做进一步筛选
核心需求
不需要组合函数返回元组集合,只需输出能适配我现有Numpy优化线性回归算法的格式即可。
内容的提问来源于stack exchange,提问作者traderblakeq
相关产品推荐
相关产品推荐

