IndexError: индекс 10 выходит за пределы оси 1 с размером 10 во время широковещательной матричной трансляции - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь понять, как вещание работает в numpy.

Z = np.random.random((500,10))
y = np.arange(500)
print(Z.shape)
print(y.shape)
Z[range(500), y]

Я создал такой пример, но получаю ошибку:

IndexError: index 10 выходит за пределы дляось 1 размером 10

Любая помощь приветствуется.

Ответы [ 2 ]

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

Я не знаю, какова цель, но чтобы избавиться от ошибки и сохранить 500, попробуйте это:

import numpy as np
n = 500
j = 0 # must be >= 0
i = 0 # must be >= 0
Z = np.random.random((n + i,n + j))
y = np.arange(n)
print(Z.shape)
print(y.shape)
Z[range(n), y]
0 голосов
/ 09 марта 2019

Форма массива Z равна (500, 10), что означает, что на оси 1 (столбцы) размер равен 10. Но когда вы используете Z[range(500), y], вы фактически делаете Z[:500, :500], что невозможно. Если вам нужны все значения Z, используйте: Z[:500, :10] или просто Z

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