首页 > 解决方案 > 使用 Numpy/Scikit-Learn 计算数组 powerset 的最快方法

问题描述

我想使用 numpy 计算 1-dim 数组的 powerset,sckit-learn 是最快的方法。通过快速方法,我的意思是,即使输入的长度为 10000,也将花费不到 9 秒的时间。

下面的代码可以解决问题。但它太慢了。

from itertools import chain, combinations
import numpy as np

def powerset(iterable):
    "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
    s = iterable
    comb_iter = chain.from_iterable(combinations(s, i) for i in range(len(s)+1))
    return list(comb_iter)

我从互联网上尝试了多种解决方案,但似乎没有什么对我有用,因为我的时间限制是一个关键限制。

标签: pythonnumpymathscikit-learnnumpy-ndarray

解决方案


推荐阅读