遍历3d numpy数组,并将每个值乘以校准值

时间:2018-08-05 09:20:50

标签: python numpy itertools

我有一个3d numpy数组,如

[[[ 90 220 210]
  [241 409 310]
  [126 376 201]]

 [[280 357 162]
  [108 204 248]
  [376 259 344]]

 [[254 279 216]
  [338 376 102]
  [310 256  84]]]
我想遍历每个元素并执行此条件。如果元素大于255,我想做整数*(255 /整数)并将其保存在同一位置。

我该如何实现?

预先感谢

1 个答案:

答案 0 :(得分:0)

  

如果元素大于255

over255 = arr > 255 # produces 3D boolean array
  

我想做整数*(255 /整数)

arr[over255] *= 255 / arr[over255]

尽管最后也许您可以执行以下操作之一:

arr[:] = np.minimum(arr, 255)
arr[:] = np.clip(arr, None, 255)