Шаг 33.
Глубокое обучение на Python. ... . Представление данных для нейронных сетей. Манипулирование тензорами с помощью NumPy

    На этом шаге мы перечислим основные способы получения срезов в NumPy.

    В примере предыдущего шага мы выбрали конкретную цифру на первой оси, использовав синтаксис train_images[i]. Операция выбора конкретного элемента в тензоре называется получением среза тензора. Посмотрим, какие операции получения среза тензора можно использовать с массивами NumPy.

    Следующий пример извлекает цифры с 10-й до 100-й (100-я цифра не включается в срез) и помещает их в массив с формой (90, 28, 28):

>>> my_slice = train_images[10:100]
>>> my_slice.shape
(90, 28, 28)

    Это эквивалентно более подробной форме записи, в которой определяются начальный и конечный индексы среза для каждой оси тензора. Обратите внимание, что : эквивалентно выбору всех элементов на оси:

>>> my_slice = train_images[10:100, :, :] # Эквивалентно предыдущему примеру
>>> my_slice.shape
(90, 28, 28)
>>> my_slice = train_images[10:100, 0:28, 0:28] # Также эквивалентно предыдущему примеру
>>> my_slice.shape
(90, 28, 28)

    В общем случае можно получить срез между любыми двумя индексами по каждой оси тензора. Например, вот как можно выбрать пиксели из области 14 * 14 в правом нижнем углу каждого изображения:

my_slice = train_images[:, 14:, 14:]

    Также допускается использовать отрицательные индексы. Как и отрицательные индексы в списках на Python, они будут откладываться от конца текущей оси. Например, обрезать все изображения, оставив только квадрат 14 * 14 пикселей в центре, можно следующим образом:

my_slice = train_images[:, 7:-7, 7:-7]

    На следующем шаге мы рассмотрим пакеты данных.




Предыдущий шаг Содержание Следующий шаг