python - 使用 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)
我从互联网上尝试了多种解决方案,但似乎没有什么对我有用,因为我的时间限制是一个关键限制。
解决方案
推荐阅读
- java - 如何从内部类为全局数组赋值
- wordpress - 通过 `woocommerce_view_order` 显示 ACF 字段
- java - 带括号的逻辑运算的优先顺序(Java)
- java - 如何从一个数组中提取正数并将它们移动到Java中的另一个?
- swift - 禁用 WKWebView 上的链接拖动
- php - 如何在 Google Compute Engine 上启用 PHP Zip 模块?
- web-scraping - 似乎无法访问元标记
- php - 通过 user_id 获得 Lighthouse GraphQL 数据所有权
- java - JTextField 的内部垂直对齐是否被 Java 11 破坏了?
- mysql - 检查表中mysql数据库中值的总出现次数是否为奇数