многомерный селектон с двумерной индексацией - PullRequest
0 голосов
/ 03 марта 2019

Я запутался в следующих случаях:

x = np.random.rand(1, 32, 3, 64);

print(x.shape)

#(1, 32, 3, 64)

Затем я применяю этот выбор.

y = x[np.arange(1)[:, None], :, 1,  np.arange(64)[None, :]]

Я думаю, что я выбрал все строки в измерении 0, 1, 3, 1во 2-м измерении должно быть исключение .. но это дало

print(y.shape)

#(1, 64, 32)

для случая ниже:

y = x[np.arange(1)[:, None], :, [1],  np.arange(64)[None, :]]

Я думаю, что я выбрал все строки в 0, 1 измерении, и всегда использую 1-естрока в 2-х измерениях.

print(y.shape)

#(1, 64, 32)

Почему форма становится такой (1, 64, 32) в обоих случаях?

И в чем разница 1 и [1]?

1 Ответ

0 голосов
/ 03 марта 2019

Можете ли вы дать немного больше информации о том, чего вы пытаетесь достичь?Есть ли конкретная причина, по которой вы индексируете np.arange(1)[:, None] вместо :?Например, y = x[:,:,1,:] форма: (1,32,64) не то, что вы ищете?

Разница в индексации 1 против [1] выглядит так, как будто это может быть расширенная индексация: https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#advanced-indexing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...