如何通过使用广播提供列列表来更新numpy数组中的行值?

时间:2018-10-04 23:26:35

标签: python python-2.7 numpy

我有以下设置,其中有2d numpy数组,我想更新每一行和匹配的列。

import numpy as np

image = np.array([[0, 0, 1, 1],
                  [0, 0, 1, 1],
                  [0, 0, 1, 1],
                  [0, 0, 1, 1],
                  [0, 0, 1, 1]])


cols = [1, 1, 2, 2, 2]

image[:, cols] = 255

print image

希望产生:

[[  0 255   1   1]
 [  0 255   1   1]
 [  0   0 255   1]
 [  0   0 255   1]
 [  0   0 255   1]]

结果与预期不同:

 [[  0 255 255   1]
  [  0 255 255   1]
  [  0 255 255   1]
  [  0 255 255   1]
  [  0 255 255   1]]

0 个答案:

没有答案