如何解决索引错误:索引 9 超出轴 0 的范围,大小为 8
如果一个 Numpy Array 元素超出了我的限制,我想在 for 循环中删除它。如果元素超出限制并且 numpy delete 函数将其删除,则我的 for 循环范围的末尾 n 减少 1。但在 for 循环内它不会减少,并且出现以下错误。如何在不破坏 for 循环的情况下从 numpy 数组中删除元素?
IndexError: 索引 9 超出了轴 0 大小为 8 的范围
n=9
ucl=0 + (3 * 1/ np.sqrt(n))
lcl=0 - (3 * 1/ np.sqrt(n))
x=np.random.normal(0,1,size=n)
for i in range(0,n):
if (xbar[i]>ucl) | (xbar[i]<lcl):
xbar=np.delete(xbar,i)
n=n-1
解决方法
您的 n=n-1 指令缩进不正确。 您的解决方案必须是:
for i in range(0,n):
if (xbar[i]>ucl) | (xbar[i]<lcl):
xbar=np.delete(xbar,i)
n=n-1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。