Сортировка данных с использованием numpy для l oop Ошибка диапазона цикла - PullRequest
0 голосов
/ 23 апреля 2020
Vetor_nascer=[]
Vetor_ocasso=[]
cos=ang_zenital_cos(lat, long, dj, horas)
cos=cos[indices_hora_i]
for i in range(len(indices_hora_i)):
    if cos[i]<0 and cos[i+1]>0:
        Vetor_nascer=np.append(Vetor_nascer,indices_hora_i[i])
    elif cos[i]>0 and cos[i+1]<0:
        Vetor_ocasso=np.append(Vetor_ocasso,indices_hora_i[i])

Эй, ребята, как я могу сделать так, чтобы это не возвращало ошибку из-за границы? Я пытаюсь создать вектор, чтобы я мог индексировать определенный c набор данных, мне нужно сделать отметку, когда cos (1) = - и cos (2) = + Как я могу сделать так, чтобы это не дало мне ошибку?

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Ваш l oop пытается получить доступ за пределами массива, вы можете l oop один раз меньше:

for i in range(len(indices_hora_i)-1):
    if cos[i]<0 and cos[i+1]>0:
        Vetor_nascer=np.append(Vetor_nascer,indices_hora_i[i])
    elif cos[i]>0 and cos[i+1]<0:
        Vetor_ocasso=np.append(Vetor_ocasso,indices_hora_i[i])
0 голосов
/ 23 апреля 2020

Я решаю это с помощью обратной индексации

Так что я знал, что мои данные имели размер 29760, поэтому я просто написал вместо этого, что это сработало. (я просто не знаю, есть ли более быстрое решение для всего цикла)

 cos[i]<0 and cos[i-29759]>0:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...