Python 有没有办法优化矩阵与一组样本的比较?

Python 有没有办法优化矩阵与一组样本的比较?,python,numpy,optimization,Python,Numpy,Optimization,这是一个3D相机对场景的深度贴图进行流式处理的情况。相机的分辨率已知并等于(w,h),在本例中,该分辨率设置为(3,2) 我试着用一袋样品来比较每一个新的框架。每个像素具有相同数量的要与之进行比较的样本,在本示例中,这些样本已知且等于4。样品袋具有以下形状(w、h、nb_样品),其在本例中等于(3、2、4) 我从0循环到nb_sample,将新帧与样本进行比较。如果差值大于阈值R,则计数器递增 问题是:有没有办法优化循环 import numpy as np w = 3 h = 2 nb_sa

这是一个3D相机对场景的深度贴图进行流式处理的情况。相机的分辨率已知并等于(w,h),在本例中,该分辨率设置为(3,2)

我试着用一袋样品来比较每一个新的框架。每个像素具有相同数量的要与之进行比较的样本,在本示例中,这些样本已知且等于4。样品袋具有以下形状(w、h、nb_样品),其在本例中等于(3、2、4)

我从0循环到nb_sample,将新帧与样本进行比较。如果差值大于阈值R,则计数器递增

问题是:有没有办法优化循环

import numpy as np

w = 3
h = 2
nb_sample = 4
R = 0.5

new_matrix = np.random.rand(w,h)

sample = np.random.rand(w, h, nb_sample)

count = np.zeros((w,h))

for index in range(0, nb_sample):
    distance = np.abs(new_matrix - sample[:, :, index])
    count[distance < R] += 1

print(count)
将numpy导入为np
w=3
h=2
nb_样本=4
R=0.5
新矩阵=np.random.rand(w,h)
样本=np.rand.rand(w,h,nb_样本)
计数=np.零((w,h))
对于范围内的索引(0,nb_样本):
距离=np.abs(新矩阵-样本[:,:,索引])
计数[距离
尝试以下两行解决方案:

distance = np.abs(sample - new_matrix[:,:,np.newaxis])
np.sum(distance < R, axis = -1)
distance=np.abs(示例-new_矩阵[:,:,np.newaxis])
np.和(距离
说明

通过使用
np将维度添加到
new_矩阵
。newaxis
numpy可以使用
-
操作计算
示例
中每个矩阵的差值

然后,距离的计算方法与代码中的相同
True
False
在python中表示为
1
0
,这就是为什么它们可以沿着右轴简单地相加