【发布时间】:2011-08-14 00:05:48
【问题描述】:
在给定 NumPy 矩阵(二维数组)的情况下,返回数组中最小/最大 n 值(连同它们的索引)的有效方法是什么?
目前我有:
def n_max(arr, n):
res = [(0,(0,0))]*n
for y in xrange(len(arr)):
for x in xrange(len(arr[y])):
val = float(arr[y,x])
el = (val,(y,x))
i = bisect.bisect(res, el)
if i > 0:
res.insert(i, el)
del res[0]
return res
这比 pyopencv 生成我想要运行它的数组所用的图像模板匹配算法要长三倍,我认为这很愚蠢。
【问题讨论】:
-
n与len(arr)的典型比率是多少? -
@Paul: tiny.. 我正在查找模板与图像的匹配数,因此它是图像中像素数的匹配数,例如 20 到 150000
标签: python optimization performance numpy