向量化
向量化提高代码运算速度
向量化是为了消除代码中的显式for循环的艺术,当数据集非常大的时候,代码的快速运行是一个非常非常重要的事情,不然就会花很长的时间去等待结果。
拿我们的逻辑回归来说,如果特征向量是n维的,那么我们需要一个for循环遍历这n个特征,这种显式的for循环会让代码运行的非常慢。下面以具体的例子来说明。
运行结果如下,可以看到,使用显式的for循环要比使用向量化技术慢200多倍,对比显而易见。经验法则就是:只要有其他可能,就不要用显示的for循环。
向量化举例
比如上图中的任务,需要求出向量中每个元素的exp(v[i]),如果使用fro循环,可以像下面这样写。
在numpy中提供了很多的向量函数,上面的代码块可以使用下面一行代码解决,而且比使用for循环更加快速。
再来一张图:
逻辑回归中的计算,上面红框框中的步骤都可以使用numpy来减少显式for循环,实际上最外面的那个for循环也可以去掉,用代码一次处理整个训练集。
★
★
领取专属 10元无门槛券
私享最新 技术干货