【发布时间】:2020-03-27 18:05:24
【问题描述】:
我尝试创建一个 for 循环,但到目前为止我没有任何成功。第一次迭代执行完美,但之后它给出了错误:
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))
【问题讨论】:
-
当
i为4 时,a[i+1]将超出索引。然而,这不是错误所说的。 -
是的,我将
in range(5)更改为in range(4)但仍然出现此错误...谢谢