切片Numpy数组会产生错误的结果

时间:2019-03-27 20:35:09

标签: numpy-slicing

我有一个numpy数组,试图沿着前两列和前两行进行切片,然后将其设置为0。

在我的代码中,您可以看到我尝试这样做的尝试。在将正确数量的数字设置为0方面,我没有麻烦。

nums = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
nums[0:2,0:2] = 0
print(nums)

The output should be 
[[0 0 0 0 
  0 0 0 0
  0 0 11 12
  0 0 15 16]]

My output is 
[[ 0  0  3  4]
 [ 0  0  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]

对于任何无法正常显示的建议或见解,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该执行以下操作:

nums = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
nums[0:2,:] = 0
nums[:, 0:2] = 0
print(nums)

则输出应为

[[0 0 0 0 
  0 0 0 0
  0 0 11 12
  0 0 15 16]]