Как получить матрицу 7x7 NumPy - PullRequest
0 голосов
/ 01 марта 2019

Я хочу получить матрицу 7x7 из моего массива.

np.shape(y)

(1, 7, 7, 32)

np.shape(y[0][:][:][:])

(7, 7, 32)

np.shape(y[0][:][:][0])

(7, 32)

Что я делаю не так?

1 Ответ

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

Вероятно, вы подумали по аналогии: «Чтобы получить элемент i, j, k, l, я могу сделать

y[i][j][k][l]

, если эти индексы скаляры, так почему бы не использовать более общие вещи, такие как срезы?"

Разница и причина, по которой скаляры работают, а срезы не работают, заключается в том, что скалярное индексирование удаляет измерения, а срезы - нет, поэтому, когда y[i] использовало первое измерение, [j] предназначено для оставшегося первого, то есть бывшей второй, то естьты хочешь.В отличие от этого, y[:] оставляет первое измерение на месте, поэтому вторая и все последующие операции индексации mistarget.

Это только одна из многих причин, которые вам следует учитывать при работе с многомерными массивами, которые практически всегда предпочитают y[ind1, ind2, ind3, etc.]y[ind1][ind2][ind3][etc.] Будь эти индексы скалярами, срезами или массивами.

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