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)

  

原文地址:https://www.cnblogs.com/cc013/p/9786984.html