мне нужна помощь в Numpy массивах

#python

#python

Вопрос:

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

его предоставление

[[1, 2, 3, 4, 5]]

это должно дать

[[1,2,3]]

Почему это происходит

Комментарии:

1. Первая часть должна быть индексирована, а не нарезана: print(array[0][0:3])

2. @omsel попробуйте распечатать(массив [0: 2])

Ответ №1:

вы используете 2D-массив, поэтому, если вы попытаетесь

  • печать (массив[0:1][0:3]) затем выводится в 2D массиве в соответствии с индексом 0
  • [[1 2 3 4 5]]

Если попробовать это

  • print(array [0][0: 3]) затем выводится в виде одномерного массива
  • [1 2 3]

если вы хотите получить 2D-вывод, то срез устанавливается как

  • печать (массив[0:1, 0:3]) и выводится в 2D-массиве
  • [[1 2 3]]

Ответ №2:

попробуйте это :

 print(array[0:1,0:3])
  

Результат:

 [[1 2 3]]

  

Ответ №3:

Почему это происходит

Вы работаете с 2D-массивом, [0:1] который может быть прочитан как 2D-массив, состоящий из 1 верхних строк, затем вы делаете [0:3] в результате — который является 2D-массивом — и, следовательно, может быть прочитан как 2D-массив, состоящий из 3 верхних строк, поскольку уже есть 1 строка, только вы заканчиваете 2D-массивом, имеющимодна строка. Если это необходимо, я надеюсь, что следующий пример с simple list поможет:

 x = [1,2,3,4,5,6,7]
y = x[0:3][0:5]
print(y)  # [1, 2, 3]
  

Ответ №4:

Попробуйте эту модификацию:

 print(array[:1][0][:3])