高效快速的二维阵列函数调用

2024-09-30 18:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个2dnumpy对象数组:A和一个numpy值数组:l(nx2数组)

2d numpy对象数组中的每个元素都有两个类似于[ax1,ay1]的值和类似于l的值。你知道吗

我调用我自己的距离函数,计算l的第一个元素和A中每个元素之间的距离,然后取最小距离。循环如下所示:

for r in range(A.shape[0]):
    for s in range(A.shape[1]):
        lencent = l.shape[0]
        dist = []
        for p in range(lencent):
             dist.append(distancefunction(A[r,s],A[r,s],l[p,0],l[p,1]))
        #print dist
        val = np.min(dist)
        #print val
        tempimg[r,s] = val

但是当numpy数组A很大,l很大,或者两者都很大时,这需要花费大量的时间。有什么方法可以优化这个循环的性能吗?你知道吗


Tags: 对象innumpy元素距离fordistrange