将一个numpy数组索引到最后一列

时间:2018-11-12 17:16:30

标签: python numpy indexing slice

我想将Numpy数组的最后N列替换为零。

a = numpy.tile([1,2,3,4], (4,1))

array([[1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4]])

要替换最后一个,我要做:

a[:,-1] = 0

要替换最后2个,我会

a[:,-2:-1] = 0

但这只会替换倒数第二列

array([[1, 2, 0, 4],
       [1, 2, 0, 4],
       [1, 2, 0, 4],
       [1, 2, 0, 4]])

能否请您解释原因? 我该怎么做才能得到我想要的东西?

谢谢

1 个答案:

答案 0 :(得分:2)

进行a[:,-2:-1] = 0时,您将从上一列之前的1开始选择,直到最后一列,不包括

您要寻找的是a[:,-2:] = 0,它将选择从-2到末尾的所有列。同样,a[:,-3:-1]将选择2个中间列。