【问题标题】:Python loops too slow for numpy ndarray对于 numpy ndarray,Python 循环太慢
【发布时间】:2021-07-24 02:44:24
【问题描述】:

我有一个图像作为矩阵 (ndarray) 的形状 (720, 1280, 3) 与 RGB 像素(变量:original)和另一个形状为 (720, 1280) 的 ndarray布尔值(变量:im)。

对于im 中的每个True 值,我希望original 的对应像素颜色为[0, 0, 255]。

我试过了(两个数组都变平了)

for i in range(im.size):
  if(im[i] == True):
    original[i] = [0, 0, 255]

但它太慢了,无法将其作为视频输出。

有什么想法可以加快速度吗?

【问题讨论】:

  • 从数组的角度来看,code (1D) 和 cmets (2D) 不匹配。

标签: python numpy loops multidimensional-array


【解决方案1】:

这和做的一样(没有展平你的数组):

original[im == True] = [0, 0, 255]

这是你的 for 循环的矢量化表示。

【讨论】:

  • 或者只是original[im] = [0,0,255]
猜你喜欢
  • 1970-01-01
  • 2014-10-12
  • 2011-05-02
  • 2016-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
相关资源
最近更新 更多