Нарезка массива Numpy, дающая неправильные результаты

#numpy-slicing

#numpy-нарезка

Вопрос:

У меня есть массив 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:

Вы должны выполнить операцию следующим образом:

 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]]