当我们处理大量的迭代(数百万/数十亿行)时,使用循环太过麻烦,这就是在Python中实现向量化变得超级关键的地方。
什么是向量化?
向量化是在数据集上实现(NumPy)数组操作的技术。在后台,它对数组或系列的所有元素一次性进行操作(不像'for'
循环那样一次操作一行)。
如何在Python中使用循环和向量来寻找数字的总和。
使用循环
import time
start = time.time()
# 遍历之和
total = 0
# 遍历150万个数字
for item in range(0, 1500000):
total = total + item
print('sum is:' + str(total))
end = time.time()
print(end - start)
#1124999250000
#0.14 Seconds
使用向量化
import numpy as np
start = time.time()
# 向量化和--使用numpy进行向量化
# np.range创建从0到1499999的数字序列
print(np.sum(np.arange(1500000)))
end = time.time()
print(end - start)
##1124999250000
##0.008 Seconds
与使用范围函数的迭代相比,向量化的执行时间约18倍。在使用Pandas DataFrame时,这种差异将变得更加明显。