繁体   English   中英

避免for循环迭代Python中的数组

[英]Avoiding for loop to iterate over an array in Python

我是Python的初学者,尝试实现计算机视觉算法。我必须对读取为二维数组的图像进行多次迭代,并且要避免使用for循环。

例如,我想将相机矩阵P(3x4尺寸)与坐标矩阵的每一行相乘,其中每一行的尺寸为1x4。 我当然会把行向量转置为矩阵乘法。 这是我使用for循环实现它的方式。 我初始化一个空数组。 相机是一个对象实例。 因此,我遍历对象以查找摄像机总数。 计数器给了我相机的总数。 然后,我通读矩阵v_h的每一行并执行乘法。 我想在不使用for循环的情况下完成以下任务。 我相信这是可能的,但我不知道该怎么做。 对于成千上万的点数,使用for循环变得非常低效。 我知道我的代码效率很低,将不胜感激。

   for c in cameras:
     counter=counter+1

   for c in cameras:       
     v_to_s=np.zeros((v_h.shape[0],c.P.shape[0],counter),dtype=float)
     for i in range(0,v_h.shape[0]):
       v_to_s[i,:,cam_count]=np.dot(c.P,v_h[i,:].T)

numpy具有可以执行乘法的matmul()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM