1.numpy数组的向量化操作
numpy数组可以使用简单的数组表达式进行多种数据操作任务,而无需使用大量循环语句。这种使用数组表达式替代循环的操作方法,称为向量化。通过向量化,可以一次性地在一个复杂对象上操作,或者将函数应用于一个复杂对象,避免了在对象的单个元素上使用复杂循环语句完成操作任务,达到代码更紧凑,执行速度更快的代码实现效果。
numpy中关于ndarry对象的循环操作是通过高效优化的c代码实现,执行速度远快于纯python。通常,向量化的数组操作比纯python的等价实现在速度上快1~2个数量级。这为实现高效的数值计算奠定了基础。
import numpy as np
import time
a = np.arange(10000, dtype = float)
b = np.arange(10000, 0, -1, dtype = float)
begin = time.time() #未使用向量化
results = []
for i,j in zip(a,b)
results.append(i*j)
end=time.time()
print('纯python运行时间:', begin-end)
begin = time.time() #使用向量化
results = a*b
end = time.time()
print('向量化运行时间:', begin-end)
#纯python运行时间:0.02645111083984375
#向量化运行时间:0.0027115345001220703
运行一下,可以看出,与纯python的循环语句实现相比,使用numpy的数组向量化操作完成同样的功能,运算效率提高了将近10倍。