В чем разница между numpyArr [:,:,:, c] и numpyArr [..., c]? - PullRequest
0 голосов
/ 24 апреля 2019

Я прошел курс глубокого обучения на Coursera.Пока я выполнял свое задание, я увидел один фрагмент кода на github.

1. numpyArr[...,c]
2. numpyArr[:,:,:,c]

В чем разница между этими методами нарезки?

1 Ответ

3 голосов
/ 24 апреля 2019

Если оба массива имеют 4 измерения, разница в результате отсутствует. Однако, если вам не важно количество измерений, использование многоточия (...) просто указывает любое количество измерений. Итак, первая версия означает:

"получить все измерения, кроме последней (только последней) только запись c"

и второе означает

"получить размеры 0, 1, 2 заполненные и только из измерения 3 запись c.

То же самое для массива 4d, но отличается для массива 5d.

Для массива с множеством измерений возможно еще больше удовольствия:

arr = np.random.uniform(size=(3, 3, 3, 3, 3))
print(arr[1, ..., 2, 3].shape)

Что означает: получить вторую запись в первом измерении и в этой записи 2 и 3 из двух последних измерений со всем, что между ними.

Несколько лет назад об этом уже спрашивали , но нужно знать, что ... - это многоточие.

...