不二如是 发表于 2020-2-10 08:16:43

02 - 超级高效的 Numpy(下)|【1000 倍效率那种】

本帖最后由 不二如是 于 2020-2-10 11:36 编辑



通过上一讲学习,是否感受到 Numpy 的丝般柔滑呢?!

好,本讲继续感受下 Numpy 自身语法的简洁和快速!

这次新建一个 py 文件。

先导入:

import numpy as np
然后我先对 np.array() 有个充分了解。

使用该方法会将 tuple 和 list , array 或者其他的序列模式的数据转创建为 ndarray。

默认会创建一个新的 ndarray 。

列表的转换我们之前用过就不说了,元祖操作是一样滴~

range() 在 Py3 中会返回一个可迭代对象:

np.array(range(6))
我们看看是否可以转为 ndarray:


可以,Numpy 中其实也有内置的同款操作 np.arange() :

np.arange(6)
输出一样:


既然还是感受高效,那么先看这段代码:

f1 = range(100000)

生成 10W 项,每项取平方,插入到 f1(截取部分):


结果不重要,用一个魔法方法修改代码:

f1 = range(100000)
%timeit
运行:


%timeit 对于任意语句,它会自动多次执行以产生一个非常精确的平均执行时间。

下面的话是神马意思?

来解释下:
**** Hidden Message *****

不同计算机速度不一样,大家以自己的为准。

我们接下来对比 np.arange() 的速度:

f2 = np.arange(100000)
%timeit f2**2
f2**2 是让每一项都开方,Numpy 中的语法,看效果:


我擦!!

每次循环 10000 个,最好时间 68.7 μs ± 1.38 μs 。

注意: 1ms = 1000us 。

看到效率了吗,循环次数是之前的 1000 倍!

目前 Numpy 使用 CPU 加速,其他的库会用 GPU 加速,意味着更飞速!

有木有爱上 Numpy 的高效呢?!

下一讲,我们来学习多维数组~

代码包(可不下):



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

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

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

Judie 发表于 2020-2-10 08:27:11

我爱 Numpy,我爱鱼C

qiuyouzhi 发表于 2020-2-10 08:54:46

我爱 Numpy,我爱鱼C

鱼C-小师妹 发表于 2020-2-10 11:52:58

我爱 Numpy,我爱鱼C

yexing 发表于 2020-2-10 11:54:25

我爱 Numpy,我爱鱼C

TCY 发表于 2020-2-10 17:33:11

我爱 Numpy,我爱鱼C

zltzlt 发表于 2020-2-10 17:54:35

我爱 Numpy,我爱鱼 C

学Python不开车 发表于 2020-2-10 20:06:15

这么快CPU会不会烧坏?{:10_266:}

Vmtayvj 发表于 2020-2-10 20:35:35

我爱 Numpy,我爱鱼C

学Python不开车 发表于 2020-2-10 20:55:49

为什么 我文件下载安装成功了,在网页里 例子都可以执行,但是创建py文件的时候不能导入,说我没有numpy模块ModuleNotFoundError: No module named 'numpy'

不忘初心1020 发表于 2020-2-10 21:24:33

学习使我快乐

不二如是 发表于 2020-2-10 21:33:23

学Python不开车 发表于 2020-2-10 20:55
为什么 我文件下载安装成功了,在网页里 例子都可以执行,但是创建py文件的时候不能导入,说我没有numpy模 ...

确定一开始就导入了吗:

import numpy

学Python不开车 发表于 2020-2-11 09:10:00

不二如是 发表于 2020-2-10 21:33
确定一开始就导入了吗:

导入numpy了 也下载老师说的软件了anaconda了,还是不行,今天用cmd又用py -3 -m pip install numpy 安装完之后就可以了,但是
>>> f1 = range(100000)
>>> %timeit
SyntaxError: invalid syntax
>>> f2 = np.arange(100000)
>>> %timeit f2**2
SyntaxError: invalid syntax

不二如是 发表于 2020-2-11 09:17:27

学Python不开车 发表于 2020-2-11 09:10
导入numpy了 也下载老师说的软件了anaconda了,还是不行,今天用cmd又用py -3 -m pip install numpy 安装 ...

从 anaconda 中启动 jupyter

然后在 jupyter 中撸代码

学Python不开车 发表于 2020-2-11 09:33:58

不二如是 发表于 2020-2-11 09:17
从 anaconda 中启动 jupyter

然后在 jupyter 中撸代码

在anaconda中运行没有问题,但是您不是说
这次新建一个 py 文件。

先导入:

import numpy as np
复制代码

weiter 发表于 2020-2-11 17:42:36

我爱 Numpy,我爱鱼C

_2_ 发表于 2020-2-12 11:23:12

我爱 Numpy,我爱鱼C
怎么都在 Jupyter 里写代码呢???
@不二如是

不二如是 发表于 2020-2-12 11:23:56

_2_ 发表于 2020-2-12 11:23
我爱 Numpy,我爱鱼C
怎么都在 Jupyter 里写代码呢???
@不二如是

因为舒服...

_2_ 发表于 2020-2-12 11:28:28

不二如是 发表于 2020-2-12 11:23
因为舒服...

VSCode , NotePad++ , Git , PyCharm ......
我很是为我的硬盘存储空间担忧{:10_269:}
现在又来了一个 Jupyter , 真的有些不知所措了

一个账号 发表于 2020-2-12 12:06:49

zltzlt 发表于 2020-2-10 17:54
我爱 Numpy,我爱鱼 C

感觉 numpy 的导入时间很慢很慢
页: [1] 2 3
查看完整版本: 02 - 超级高效的 Numpy(下)|【1000 倍效率那种】