Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于GPU的表分组操作组合解析器_Python_Pandas_Gpu_Pandas Groupby_Cudf - Fatal编程技术网

Python 基于GPU的表分组操作组合解析器

Python 基于GPU的表分组操作组合解析器,python,pandas,gpu,pandas-groupby,cudf,Python,Pandas,Gpu,Pandas Groupby,Cudf,给定一个包含许多列的表 |-------|-------|-------|-------| | A | B | .. | N | |-------|-------|-------|-------| | 1 | 0 | .. | X | | 2 | 0 | .. | Y | | .. | .. | .. | .. | |-------|-------|-------|-------|

给定一个包含许多列的表

|-------|-------|-------|-------|
|   A   |   B   |  ..   |   N   |
|-------|-------|-------|-------|
|   1   |   0   |  ..   |   X   |
|   2   |   0   |  ..   |   Y   |
|  ..   |  ..   |  ..   |  ..   |
|-------|-------|-------|-------|
迭代所有列组合(所有长度)并执行分组操作的最有效方法是什么?由于表格和特别是组合可能相当大(2^n),最好使用


这个表有多大?比如说超过100列。因此,与其说是按性能分组,不如说是按100列评估的组合,你要选择100个选择2+100个选择3+。。。100选择99个通话至groupby。这看起来是10^30级。如果每个内核调用连续运行,甚至只需要一纳秒,那么您仍然需要等待10^21秒(永远)。即使您可以并发运行一百万个线程,并且每个线程仍然在一纳秒内完成,您也需要等待10^15秒(永远)。为了获得成功,您可能需要重新定义此问题。谢谢@NickBecker,超级有效的分数。有一些贪婪的方法和选择尽早消除分支,但希望使问题简单易懂,并将重点放在GPU加速上。
 colnames = df.columns
 for L in range(2,len(colnames)):
   for comb in itertools.combinations(colnames, L):
     dfg = df.groupby(comb, sort=False).size().reset_index().rename(columns={0:'count'})