避免循环在Python中迭代数组

时间:2018-02-22 11:13:49

标签: arrays python-2.7 for-loop

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

例如,我想将相机矩阵P(3x4维度)与每行坐标矩阵相乘,其中每行的尺寸为1x4。我当然会对行向量进行转置以进行矩阵乘法。以下是我使用for循环实现它的方法。我初始化一个空数组。相机是一个对象实例。所以我遍历对象以找到摄像机的总数。计数器给我相机的总数。然后我读遍矩阵v_h的每一行并执行乘法。我想在不使用python中的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)

1 个答案:

答案 0 :(得分:0)

numpy有matmul()可以执行乘法

相关问题