Неверная индексная скалярная переменная для цикла for - PullRequest
1 голос
/ 26 марта 2020

Я пытался сделать для l oop, но пока безуспешно. Первая итерация выполняется отлично, но затем выдает ошибку:

IndexError: неверный индекс для скалярной переменной

для строки Ylog=[(data1.Z>a[i])&(data1.Z<a[i+1])]

Я не знаю, откуда это ...

import matplotlib.pyplot as plt
import pandas as pd
from scipy import stats

base=pd.read_csv('pont du gard.csv',sep=';',index_col=0)
data1=pd.read_csv('P1.csv',sep=';',index_col=0)

P1=np.sqrt((base.X['Base']-data1.X)**2+(base.Y['Base']-data1.Y)**2)

a=np.array([77,86.6,95,115,125])
for i in range(5):
    Xlog=[(P1)]
    Ylog=[(data1.Z>a[i])&(data1.Z<a[i+1])]
    logique=np.logical_and(Xlog,Ylog).flatten()
    x=P1[logique]
    z=data1.Z[logique]
    a, b, r_value, p_value, std_err = stats.linregress(x,z)
    plt.plot(x,a*x+b)
    print('Pendage P1:',np.arctan(a1)*180/np.pi,'°')
    print('Erreur de :', 1-np.absolute(r_value))

1 Ответ

0 голосов
/ 26 марта 2020

Проблема в том, что в l oop вы переопределяете переменную a, когда делаете

a, b, r_value, p_value, std_err = stats.linregress(x,z).

Поэтому из второй итерации a - это не массив, а скаляр, поэтому вы не можете его проиндексировать, и возникает такая ошибка.

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