Python 循环对于 numpy ndarray 来说太慢了

Pas*_*l K 1 python loops numpy multidimensional-array

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

对于I want 中的每个True值,对应像素的颜色为 [0, 0, 255]。imoriginal

我试过(两个阵列都被压平了)

for i in range(im.size):
  if(im[i] == True):
    original[i] = [0, 0, 255]
Run Code Online (Sandbox Code Playgroud)

但将其作为视频输出太慢了。

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

Cam*_* M. 5

这与执行相同(无需展平数组):

original[im == True] = [0, 0, 255]
Run Code Online (Sandbox Code Playgroud)

那是 for 循环的矢量化表示。

  • 或者只是“original[im] = [0,0,255]”。 (3认同)