有没有做外贸免费网站,台州网站建设开发,网络服务公司注册官网,网站建站代理加盟绪论
千里之行始于足下#xff1b;继续坚持
1.对比Python和numpy的性能
使用魔法指令%timeit进行对比 需求#xff1a;
实现两个数组的加法数组 A 是 0 到 N-1 数字的平方数组 B 是 0 到 N-1 数字的立方
import numpy as np
def numpy_sum(text_num):…绪论
千里之行始于足下继续坚持
1.对比Python和numpy的性能
使用魔法指令%timeit进行对比 需求
实现两个数组的加法数组 A 是 0 到 N-1 数字的平方数组 B 是 0 到 N-1 数字的立方
import numpy as np
def numpy_sum(text_num):numpy的测试函数arranp.arange(text_num) ** 2arrbnp.arange(text_num) ** 3return arraarrbdef python_sum(text_num):原生Python的测试函数ab_sum[]a[value**2 for value in range(0,text_num)]b[value**3 for value in range(0,text_num)]for i in range(0,text_num):ab_sum.append(a[i]b[i])return ab_sumtext_num100#保存Python的测试时间
#100,1000的数组长度测试起来时间可能比较小可视化不太方便
python_times[]
#进行到1000000次的时间测试
while text_num 1000000:result %timeit -o python_sum(text_num)text_numtext_num*10python_times.append(result.average)#保存numpy的测试时间
numpy_times[]
text_num100
while text_num 1000000:result %timeit -o numpy_sum(text_num)numpy_times.append(result.average)text_numtext_num*10
下面通过折线图进行对比
#数据可视化对比
import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatterx_values[100,1000,10000,100000,1000000]
python_y_valuesnp.array(python_times)*1000000
numpy_y_valuesnp.array(numpy_times)*1000000
fig,axplt.subplots()
ax.plot(x_values,python_y_values,linewidth3,labelpython)
ax.plot(x_values,numpy_y_values,linewidth3,labelnumpy)
ax.set_title(Comparing Numpys Time with Python,fontsize14)
ax.set_xlabel(text sum,fontsize14)
ax.set_ylabel(time/us,fontsize14)
#设置显示所有刻度
#ax.set_xticks(x_values,minorTrue)
#使x轴完全表示,使用formatter自定义格式
formatterScalarFormatter(useMathTextTrue)#使用数学格式表示
formatter.set_powerlimits((0,7))
ax.xaxis.set_major_formatter(formatter)
ax.legend()#显示label标签
plt.show(绘制柱状图
#绘制柱状图
fig,axplt.subplots()
bar_width0.35
ax.bar(x_values,python_y_values,bar_width,labelPython)
ax.bar(x_values,numpy_y_values,bar_width,labelNumpy)ax.legend()#legend() 函数用于添加图例到图形上,就是右上角的图形
plt.tight_layout()
plt.show()100和1000的时间太短了可以从100000开始到100000000这样可视化会比较好看