• 【原创】展开二层嵌套列表(或pd.Series)的几种方法效率对比




    ★二层嵌套列表(或以列表为元素的pd.Series)有以下几种展开方式
    (1)列表生成式
    (2)用np.sum方法(将外层列表中各个子列表相加)
    (3)用sum方法(第二个参数传入一个空列表)
     
    ★但是谨记:对列表慎用sum方法!(以上3个方法只推荐使用第一个!!!)
     
    因为——对于列表,无论是sum方法还是np.sum方法,效率都特别低!
        直接用列表生成式,效率高很多!
     
    示例代码和结果如下:
    import numpy as np
    import pandas as pd
    import time
     
    sr = pd.Series([list('sdkajksdfdsaf') for _ in range(20000)])
    sr.head(5)
     
    >>>
    0    [s, d, k, a, j, k, s, d, f, d, s, a, f]
    1    [s, d, k, a, j, k, s, d, f, d, s, a, f]
    2    [s, d, k, a, j, k, s, d, f, d, s, a, f]
    3    [s, d, k, a, j, k, s, d, f, d, s, a, f]
    4    [s, d, k, a, j, k, s, d, f, d, s, a, f]
    dtype: object
    start = time.time()
    li1 = [i for k in sr for i in k]
    time1 = time.time()
    print('用生成式方法需要时间:', time1 - start)
     
    li2 = np.sum(sr)
    time2 = time.time()
    print('用np.sum方法需要时间:', time2 - time1)
     
    li3 = sum(sr, [])
    time3 = time.time()
    print('用sum方法需要时间:', time3 - time2)
     
    >>>
    用生成式方法需要时间: 0.009999990463256836
    用np.sum方法需要时间: 8.989910125732422
    用sum方法需要时间: 8.979910373687744
     
     
  • 相关阅读:
    xmlHttpRequest参数
    蒙哥马利:“沙漠之狐”猎手
    c# as is 类型转换
    值类型和引用类型
    BuuctfmiscN种方法解决
    Buuctfmisc二维码
    Buuctfweb[HCTF 2018]WarmUp
    Buuctfmisc大白
    map用索引作下标之后,再插值时报错.
    c++ stl 的string 的size() legth()区别
  • 原文地址:https://www.cnblogs.com/oceanicstar/p/10248763.html
Copyright © 2020-2023  润新知