错误 #1:像1999那样循环
我和其他开发者一样,对精心制作的for循环有着强烈的喜爱。它们构成了我们工作的很大一部分基础。然而,当讨论纯粹的速度时,特别是处理大型数据集时,那些可靠的循环开始显得更像是负担而不是助力。
示例:让我们加一些数字
想象你需要计算一个巨大数字列表的平方和。以下是循环的方式:
numbers = [1, 2, 3, 4, 5, ... , 10000] # A big list
total = 0
for number in numbers:
squared = number * number
total += squared
看起来无害,对吧?但在幕后,Python为每个元素进行了大量的单独计算。
修复方法:NumPy来拯救!
这就是NumPy像超级英雄一样出现的地方。它全是关于矢量化——一次性对整个数组执行操作。让我们重写那个示例:
import numpy as np
numbers = np.array([1, 2, 3, 4, 5, ... , 10000])
squared = numbers * numbers # Vectorized squaring!
total = squ