向量化计算
一种特殊的并行计算的方式,它可以在同一时间执行多次操作,通常是对不同的数据执行同样的一个或一批指令,或者说把指令应用于一个数组/向量。
生成等差数列
numpy.arange(start, end, step); #开始值 结束值 步长
#生成一个整数的等差序列
#局限只能用于遍历
r1_10 = range(1, 10, 2)
for i in r1_10:
print(i)
#1
#3
#5
#7
#9
#r1_10 = range(0.1, 10, 2) 这样会抛出TypeError: 'float' object cannot be interpreted as an integer
import numpy
numpy.arange(0.1, 0.5, 0.01)
r = numpy.arange(0.1, 0.2, 0.01)
for i in r:
print(i)
#内存值,输出值(注意)
#0.1 0.1
#0.11 0.11
#0.12 0.12
#0.13 0.13
#0.14 0.13999999999999999
#0.15 0.14999999999999997
#0.16 0.15999999999999998
#0.17 0.16999999999999998
#0.18 0.17999999999999997
#0.19 18999999999999995
四则运算
规则:相同位置的的数据进行运算,结果保留在相同的位置
语法: S1 op S2
#接上面的
#向量化运算
r + r
r - r
r * r
r / r
函数计算
规则:相同位置的数据进行函数的计算,函数返回结果保留在相同的位置
语法:fun(x)
#函数式的向量化计算
numpy.power(r, 5)
#Out[17]: array([1.000000e-05, 1.610510e-05, 2.488320e-05, 3.712930e-05,
# 5.378240e-05, 7.593750e-05, 1.048576e-04, 1.419857e-04,
# 1.889568e-04, 2.476099e-04])
#向量化运算,比较运算
r>0.3
#Out[17]: array([False, False, False, False, False, False, False, False, False,False])
#结合过滤使用
r[r>0.3]
#Out[17]: array([], dtype=float64)
向量化计算的原则
原则: 代码中尽可能避免显式的for循环,过早的优化是魔鬼