从元组切片列的快速方法



我有一个庞大的元组列表,我想从中提取各个列。我尝试了两种方法。假设列表名称的名称是列表,我想提取第 j 列。

第一个是

column=[item[j] for item in List]

第二个是

newList=zip(*List)
column=newList[j]

但是,这两种方法都太慢了,因为列表的长度约为 50000,每个元组的长度约为 100。有没有更快的方法从列表中提取列?

这是

Numpy做得很好的事情

A = np.array(Lst) # this step may take a while now ... maybe you should have Lst as a np.array before you get to this point
sliced = A[:,[j]] # this should be really quite fast

可是

newList=zip(*List)
column=newList[j]

对我来说,使用 50kx100 元组只需不到一秒钟的时间......因此,也许可以分析您的代码并确保瓶颈实际上是您认为它所在的地方......

最新更新