马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-2-9 23:40 编辑
上一讲我们搭建完环境,现在来体验下 Numpy 的高效。
继续用我们的列表表达式快速生成,a 和 b 两个列表:
a 是 0 到 9 共 10 个自然数,b 是 1 到 10 共 10 个自然数。
若想让两个列表对应项相加,直接:
嗯??怎么变成拼接了...
我们可以采取最原始的办法,新建一个空列表 c 。
通过 append 方法,在循环中将 a 和 b 每个位置求和插入其中。
代码实现:
c = []
for i in range(len(a)):
c.append(a[i] + b[i])
print(c)
然后在 jupyter 中执行:
没问题,结果是我们想要的。
既然用了 Numpy,我就可以直接这么写:
np.array(a) + np.array(b)
来一起看结果:
当然就这样,都是一瞬间出结果,看不出来高效不高效问题。
怎么办?
用时间快慢来衡量,例如这段代码:
该段代码常用来统计运行时间,time.perf_counter() 会返回系统运行时间。
通过 time.sleep(1) 人为暂停 1 秒,来看运行结果:
这样我们只要将 time.sleep(1) 换为我们的函数块,通过对比时间就能看出效率高低。
两个方法也有,为了更清楚的看出效率,将上面的相加算法改为:
修改第一个循环代码改为:
c = []
for i in range(len(a)):
c.append(a[i]**2 + b[i]**2)
print(c)
带入计时代码中,运行:
修改 numpy 方法代码:
np.array(a)**2 + np.array(b)**2
带入计时代码中,运行:
想一想如果千万的货币交易,1 位的变化,那也是很多钱哦~
下一讲我们用更多代码来感受 Numpy 的高效!
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |