zoukankan      html  css  js  c++  java
  • numpy数组及处理:效率对比

    # 用列表实现循环,并包装成函数,用numpy实现,并包装成函数,对比两种方法实现的效率
    # 用列表实现循环
    def pySum(n):
        a=list(range(10))
        b=list(range(0,60,6))
        c=[]
        for i in range(len(a)):#循环的时候,长度和列表a一样
            c.append(a[i]**2+b[i]**3)#在空列表c中增加a列表遍历的数*2+b列表遍历的数*3,考虑的是数列的a^2+b^3
        return (c)#注意对齐
    print(pySum(1))#无论打印的n 值为多少,就会输出多少组数。
    
    # 用numpy实现,并包装成函数
    import numpy
    def npSum(n):
        a=numpy.arange(10)#range()和arange()函数的区别range(star,stop,step)其为前后步长所限定,arange(star,stop,step)制指定范围,可设置浮点数
    m=numpy.arange(10)
        b=numpy.arange(0,60,6)
        c=a+b
        return (c)
    print(npSum(10))
    
    对比两种方法实现的效率
    def pySum(n):
        a=list(range(n))
        b=list(range(0,5*n,5))
        c=[]
        for i in range(len(a)):#循环的时候,长度和列表a一样
            c.append(a[i]**2+b[i]**3)#在空列表c中增加a列表遍历的数*2+b列表遍历的数*3
        return (c)#注意对齐
    print(pySum(10))#无论打印的n 值为多少,都只会输出10组数


    def npSum(n):
        a=list(range(n))
        b=list(range(0,5*n,5))
        c=[]
        for i in range(len(a)):#循环的时候,长度和列表a一样
            c.append(a[i]**2+b[i]**3)#在空列表c中增加a列表遍历的数*2+b列表遍历的数*3
        return (c)#注意对齐
    print(pySum(1))#无论打印的n 值为多少,都只会输出10组数
    
    from datetime import datetime
    start=datetime.now()
    pySum(2000000)
    delta=datetime.now()-start
    print(delta)
    
    start=datetime.now()
    npSum(2000000)#数目越大,所用时间越长
    delta=datetime.now()-start
    print(delta)
    

      


      

     

    #numpy多维数组的效率对比

    def shulie(n):
        a=list(range(n))
        b=list(range(0,5*n,5))
        c=[]
    
    
        for i in range(n):
            c.append(a[i]**2+b[i]**3)
    
        for j in range(n):
            c.append(a[j]**2+b[j]**3)
    
        for k in range(n):
             c.append(a[k]**2+b[k]**3)
        return(c)
    print(shulie(10))
    
    
    
    import numpy
    def npSum(n):
        a=numpy.arange(10)#range()和arange()函数的区别range(star,stop,step)其为前后步长所限定,arange(star,stop,step)制指定范围,可设置浮点数
        m=numpy.arange(10)
        b=numpy.arange(0,60,6)
    
        c=numpy.array([[a,b],[a**2,b**3]])
        return (c)
    print(npSum(10))
    
    
    
    # 效率对比
    
    from datetime import datetime
    start=datetime.now()
    shulie(2000000)
    delta=datetime.now()-start
    print(delta)
    
    start=datetime.now()
    npSum(2000000)#数目越大,所用时间越长
    delta=datetime.now()-start
    print(delta)
    

      

  • 相关阅读:
    kernel pwn 入门环境搭建
    linux下sh脚本/bin/bash^M问题解决
    Linux下的C#连接Mysql数据库
    使用docker Hub
    使用ajax+php+mysql实现数据库定时刷新
    docker 安装LAMP环境
    解决Mysql错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
    php实现socket简单的例子
    一次mysql调优过程
    一次mysql主从同步问题及解决过程
  • 原文地址:https://www.cnblogs.com/cc013/p/9786984.html
Copyright © 2011-2022 走看看