加速Python循环

来源:互联网 发布:义乌疯狂淘宝李涛 编辑:程序博客网 时间:2024/05/16 14:40

1、使用for

import numpy as npfrom datetime import datetimeimg=np.random.random([10000,10000])start_time=datetime.now()img2=[]for i in img:    for j in i:        if j > 0.5:            img2.append(1.)        else:            img2.append(0.)print(type(img2)) # <class 'list'>print(datetime.now()-start_time) # 0:00:27.886609

2、使用list

import numpy as npfrom datetime import datetimeimg=np.random.random([10000,10000])start_time=datetime.now()img2=[1. if j>0.5 else 0. for i in img for j in i]print(datetime.now()-start_time) # 0:00:13.985333

3、set

import numpy as npfrom datetime import datetimeimg=np.random.random([10000,10000])start_time=datetime.now()img2={1. if j>0.5 else 0. for i in img for j in i}print(type(img2)) # <class 'set'>print(datetime.now()-start_time) # 0:00:15.446309

4、附加 dict

import numpy as npfrom datetime import datetimeimg=np.linspace(0,100,1000000)start_time=datetime.now()img2={x:x**2 for x in img}print(type(img2)) # <class 'dict'>print(datetime.now()-start_time) # 0:00:00.685456