我有一个巨大的元组列表,我想从中提取单个列。我试过两种方法。 假设列表名称的名称是列表,我想提取第j列。
第一个是
column=[item[j] for item in List]
第二个是
newList=zip(*List)
column=newList[j]
但是这两个方法都太慢了,因为列表的长度大约是50000,每个元组的长度大约为100.是否有更快的方法从列表中提取列?
答案 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元组只需不到一秒的时间......所以可能会对您的代码进行分析并确保瓶颈实际上在您认为的位置......