1#引用Numpy的包
首先打开jupyter notebook
import numpy as np
np.__version__#查看Numpy版本,这两步没报错则成功
为测试Numpy,现设置项目如下:
#需求
#实现两个数组的加法 数组A是1~N-1数字的平方 数组B是1~N数字的立方
#对比使用Numpy和原生Python的性能对比
#使用Python原生语法实现对比:
def python_sum(n):
a = [i**2 for i in range(n)]
b = [i**3 for i in range(n)]
c = []
for i in range(n):
c.append(a[i]+b[i])
return c
#进行测试
python_sum(10)
#使用Numpy实现
def numpy_sum(n):
a = np.arange(n)**2#把a变成Numpy中的数组
b = np.arange(n)**3
return a+b#在Python中把两个list相加是合并成一个大list numpy中则是对应元素相加
#进行测试
numpy_sum(10)
2#性能对比:执行1000次
#%timeit#输出函数执行时间 下面分别对应平均时间 平均波动时间 每次循环次数
%timeit python_sum(1000)
%timeit numpy_sum(1000)
#性能对比 执行10W次
%timeit python_sum(100000)
%timeit numpy_sum(100000)
#性能对比 执行1000W次
%timeit python_sum(1000*10000)
%timeit numpy_sum(10000000)
#绘制性能对比图
pytimes = [393, 4.38*1000,4.34*1000*1000]
nptimes = [5.15,532,6.23*1000] #分别采用上述测试的平均时长数据作为数值参考
import pandas as pd#应用pandas库作为制表工具
df = pd.DataFrame({
"pytimes":pytimes,
"nptimes":nptimes,
})
df
%matplotlib inline
df.plot.bar()#运用matplotlib作出可视化图像,对比得到numpy在数组运算上快与python原生代码