python - for 循环的索引标量变量无效
问题描述
我试图制作一个 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))
解决方案
问题是在循环中你重新定义了a
变量
a, b, r_value, p_value, std_err = stats.linregress(x,z)
.
因此,从第二次迭代开始a
,它不是一个数组而是一个标量,因此你不能索引它,并且会引发这样的错误。
推荐阅读
- go - 如何轮询 HTTP 端点并更新数据源?
- assembly - 作为参数传递给 x86 函数的结构
- python - 我想打印出字典 json 文件内容,但我得到一个错误字符串索引必须是整数
- javascript - 如何检测对象数组是否已更改
- c++ - CodeBlocks 和 Visual 2017 中相同代码的不同结果
- react-native - main.jsbundle 中的 Firebase Crashlytics 非致命问题
- php - 如何检测电报命令并获取单独的参数?
- django - 如果您使用深度链接,Expo web 使用错误的基本 uri 加载资产
- excel - 在 B 列中选择单元格时自动调用文本框
- azure - Azure Synapse Pipeline、Spark Job Definition 等的 ARM/Terraform 文档在哪里