Numpy IndexError: индекс 1 выходит за пределы оси 0 с размером 1 - PullRequest
0 голосов
/ 22 апреля 2019

Мой код:

import numpy as np
num_people = 2
x = np.zeros((1,75,1,1792,num_people))
for i in range(num_people):
  x[1,:,:,:,i]=np.arange(75,1,1792)

Ошибка:

IndexError                                Traceback (most recent call last)
<ipython-input-17-941de32daec2> in <module>()
      1 for i in range(num_people):
----> 2   x[1,:,:,:,i]=np.arange(75,1,1792)

IndexError: index 1 is out of bounds for axis 0 with size 1

1 Ответ

0 голосов
/ 22 апреля 2019

Ответ лежит в ЗОЛОТОМ ПРАВИЛЕ Python - все начинается с нуля.Вы сделали - x = np.zeros((1,75,1,1792,num_people))

, который говорит, что x будет иметь форму (1, 75, 1, 1792, 2), а первая ось будет иметь только 1 элемент, но в то время как в цикле for, скажем,-

x[1,:,:,:,i] вы запрашиваете 2-й элемент, который даже не существует по первой оси,

Так что замените x[1,:,:,:,i] на x[0,:,:,:,i]

Это будетбыть действительно полезным, если вы понимаете разницу между формой и доступом к измерению.Итак, форма 1 означает, что у вас есть только 1 предмет, но при доступе к нему нужно сказать, дайте мне 0-е значение (так как все начинается с нуля)

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