我有一个庞大的元组列表,我想从中提取各个列。我尝试了两种方法。假设列表名称的名称是列表,我想提取第 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 元组只需不到一秒钟的时间......因此,也许可以分析您的代码并确保瓶颈实际上是您认为它所在的地方......