【问题标题】:Avoiding for loop to iterate over an array in Python避免 for 循环在 Python 中遍历数组
【发布时间】:2018-08-02 05:18:40
【问题描述】:

我是 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)

【问题讨论】:

    标签: arrays python-2.7 for-loop


    【解决方案1】:

    numpy 有 matmul() 可以执行乘法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 2017-04-15
      • 2018-03-13
      相关资源
      最近更新 更多