也许min
足够聪明,可以按顺序在阵列上执行其工作(因此具有高速缓存局部性),并且argmin
正在阵列中跳跃(导致大量高速缓存未命中)?
无论如何,如果您randvals
从一开始就愿意保留为按Fortran顺序排列的数组,则它会更快,尽管将其复制到按Fortran顺序排列并没有帮助。
有没有办法使numpy.argmin()和min()一样快?
也许min
足够聪明,可以按顺序在阵列上执行其工作(因此具有高速缓存局部性),并且argmin
正在阵列中跳跃(导致大量高速缓存未命中)?
无论如何,如果您randvals
从一开始就愿意保留为按Fortran顺序排列的数组,则它会更快,尽管将其复制到按Fortran顺序排列并没有帮助。