马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-2-10 11:36 编辑
通过上一讲学习,是否感受到 Numpy 的丝般柔滑呢?!
好,本讲继续感受下 Numpy 自身语法的简洁和快速!
这次新建一个 py 文件。
先导入:
然后我先对 np.array() 有个充分了解。
使用该方法会将 tuple 和 list , array 或者其他的序列模式的数据转创建为 ndarray。
默认会创建一个新的 ndarray 。
列表的转换我们之前用过就不说了,元祖操作是一样滴~
range() 在 Py3 中会返回一个可迭代对象:
我们看看是否可以转为 ndarray:
可以,Numpy 中其实也有内置的同款操作 np.arange() :
输出一样:
既然还是感受高效,那么先看这段代码:
f1 = range(100000)
[i**2 for i in f1]
生成 10W 项,每项取平方,插入到 f1(截取部分):
结果不重要,用一个魔法方法修改代码:
f1 = range(100000)
%timeit [i**2 for i in f1]
运行:
%timeit 对于任意语句,它会自动多次执行以产生一个非常精确的平均执行时间。
下面的话是神马意思?
来解释下:
不同计算机速度不一样,大家以自己的为准。
我们接下来对比 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 的高效呢?!
下一讲,我们来学习多维数组~
代码包(可不下):
secondNparray.zip
(318 Bytes, 下载次数: 9, 售价: 3 鱼币)
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |