从元组切片列的快速方法

时间:2016-05-26 20:32:39

标签: python python-2.7

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

第一个是

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

第二个是

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

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

1 个答案:

答案 0 :(得分:1)

这是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元组只需不到一秒的时间......所以可能会对您的代码进行分析并确保瓶颈实际上在您认为的位置......