提出问题:
当在浏览numpy.max说明时,看到一句话
when a.shape[0]
is 2, maximum(a[0], a[1])
is faster than max(a, axis=0)
当a第一维形状为2时,求列最大值用maximum比max快
这是为什么呢?
函数说明:
maximum的功能:输入两个数组,按元素求最大值
max的功能:输入一个数组,按轴求最大值
时间复杂度
数组a第一维为2
向maximum传入a[0],a[1],然后按元素比较,得出每一列的最大值,时间复杂度为,考虑n为每一列的数量(下同)
向max传入a,沿0轴,对比得出每个索引的最大值,时间复杂度为,,考虑max处理会处理a中的两行数据
总结
通俗来讲,此例的maximum较max的时间复杂度而言,相当于前者直接按索引比较,后者先按行分,再按索引取最大值(此处的索引即按元素比较)