我正在看numpy.argmax
函数的代码。我很困惑numpy
为argmax
函数维护的是哪种数据结构。
https://numpy.org/doc/stable/reference/generated/numpy.argmax.html
最后,我想知道numpy argmax
函数对于原始数据类型的理论平均情况运行时间复杂度是多少,平均情况下是O(logN)
还是O(N)
?
这也可能是一个相关的问题:Faster alternatives to numpy.argmax/argmin which is slow
先谢谢你了。
2条答案
按热度按时间vohkndzv1#
下面是使用
benchit
的性能分析:正如你所看到的,它是
O(N)
,因为它应该是。你迭代数组一次,以找到最大值。rks48beu2#
这里要添加一个响应,因为数字自然会取决于您的硬件,这应该为其他人提供一些见解。这里是一个基准测试结果,显示内存结构也会影响结果,但线性部分在大小约为10,000的向量中起作用,具有1:1的缩放比例,并且向量〉10,000个样本的良好近似值是向量中每个值的5e-10。