不二如是 发表于 2020-2-9 21:14:17

01 - 超级高效的 Numpy(上)

本帖最后由 不二如是 于 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 + b)
print(c)
然后在 jupyter 中执行:


没问题,结果是我们想要的。

既然用了 Numpy,我就可以直接这么写:

np.array(a) + np.array(b)
来一起看结果:


当然就这样,都是一瞬间出结果,看不出来高效不高效问题。

怎么办?

用时间快慢来衡量,例如这段代码:

**** Hidden Message *****
该段代码常用来统计运行时间,time.perf_counter() 会返回系统运行时间。

通过 time.sleep(1) 人为暂停 1 秒,来看运行结果:


这样我们只要将 time.sleep(1) 换为我们的函数块,通过对比时间就能看出效率高低。

两个方法也有,为了更清楚的看出效率,将上面的相加算法改为:

对应项求平方,然后再相加。
修改第一个循环代码改为:

c = []
for i in range(len(a)):
    c.append(a**2 + b**2)
print(c)
带入计时代码中,运行:


修改 numpy 方法代码:

np.array(a)**2 + np.array(b)**2
带入计时代码中,运行:


想一想如果千万的货币交易,1 位的变化,那也是很多钱哦~

下一讲我们用更多代码来感受 Numpy 的高效!



如果有收获,别忘了评分{:10_281:} :

http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif

如果想看更多,请订阅 淘专辑(传送门)(不喜欢更要订阅{:10_297:} )

zltzlt 发表于 2020-2-9 21:17:54

{:10_256:}{:10_256:}

不二如是 发表于 2020-2-9 21:18:14

zltzlt 发表于 2020-2-9 21:17


要不要这么快{:10_278:}

不二如是 发表于 2020-2-9 21:52:57

zltzlt 发表于 2020-2-9 21:51
这段代码在 Python 3.8 根本无法运行,报错:

AttributeError: module 'time' has no attribute 'cl ...

刷新页面

zltzlt 发表于 2020-2-9 21:54:30

不二如是 发表于 2020-2-9 21:52
刷新页面

好吧{:10_250:}

qiuyouzhi 发表于 2020-2-10 08:53:53

学习学习{:10_257:}

TCY 发表于 2020-2-10 11:07:00

numpy还能这样?

lauvictor 发表于 2020-2-10 12:19:54

学习

慕容逍遥 发表于 2020-2-10 22:43:02

膜拜

_2_ 发表于 2020-2-11 14:07:34

呵呵,@不二如是 终于来讲 Python 啦~

不二如是 发表于 2020-2-11 14:28:47

_2_ 发表于 2020-2-11 14:07
呵呵,@不二如是 终于来讲 Python 啦~

{:10_278:}主要是 Nnmpy

weiter 发表于 2020-2-11 17:41:39

看看

一个账号 发表于 2020-2-11 20:39:54

看看

一个账号 发表于 2020-2-11 22:39:22

不二如是 发表于 2020-2-11 14:28
主要是 Nnmpy

难道导入 numpy 的时间不用计算?

syf040916 发表于 2020-2-15 16:39:07

学习一下

zhongsijia86 发表于 2020-2-15 22:45:23

Numpy 好厉害的

kang526 发表于 2020-2-24 10:14:43

哦,学习

maxliu06 发表于 2020-2-24 14:55:49

学习中

esuos 发表于 2020-2-24 23:07:10

学习一下{:10_257:}

Playtoy 发表于 2020-2-25 22:10:54

骚操作。
页: [1] 2
查看完整版本: 01 - 超级高效的 Numpy(上)