IndexError:数组索引太多

2023-11-29

我知道有大量这样的线程,但所有这些线程都适用于非常简单的情况,例如 3x3 矩阵和此类事物,并且这些解决方案甚至不适用于我的情况。所以我试图绘制 G 与 l1 的关系图(这不是 11,而是 L1)。数据位于我从 Excel 文件加载的文件中。 Excel 文件为 14x250,因此有 14 个参数,每个参数有 250 个数据点。我有另一个用户(向 Hugh Bothwell 致敬!)帮助我解决代码中的错误,但现在又出现了另一个错误。

所以这是有问题的代码:

# format for CSV file:
header = ['l1', 'l2', 'l3', 'l4', 'l5', 'EI',
      'S', 'P_right', 'P1_0', 'P3_0',
      'w_left', 'w_right', 'G_left', 'G_right']

def loadfile(filename, skip=None, *args):
    skip = set(skip or [])
    with open(filename, *args) as f:
        cr = csv.reader(f, quoting=csv.QUOTE_NONNUMERIC)
        return np.array(row for i,row in enumerate(cr) if i not in skip)
#plot data
outputs_l1 = [loadfile('C:\\Users\\Chris\\Desktop\\Work\\Python Stuff\\BPCROOM - Shingles analysis\\ERR analysis\\l_1 analysis//BS(1) ERR analysis - l_1 - P_3 = {}.csv'.format(p)) for p in p3_arr]

col = {name:i for i,name in enumerate(header)}

fig = plt.figure()
for data,color in zip(outputs_l1, colors):
    xs  = data[:, col["l1"     ]]
    gl = data[:, col["G_left" ]] * 1000.0    # column 12
    gr = data[:, col["G_right"]] * 1000.0    # column 13
    plt.plot(xs, gl, color + "-", gr, color + "--")
for output, col in zip(outputs_l1, colors):
    plt.plot(output[:,0], output[:,11]*1E3, col+'--')
plt.ticklabel_format(axis='both', style='plain', scilimits=(-1,1))
plt.xlabel('$l1 (m)$')
plt.ylabel('G $(J / m^2) * 10^{-3}$')
plt.xlim(xmin=.2)
plt.ylim(ymax=2, ymin=0)

plt.subplots_adjust(top=0.8, bottom=0.15, right=0.7)

运行整个程序后,我收到错误消息:

Traceback (most recent call last):
  File "C:/Users/Chris/Desktop/Work/Python Stuff/New Stuff from Brenday 8 26 2014/CD_ssa_plot(2).py", line 115, in <module>
    xs  = data[:, col["l1"     ]]
IndexError: too many indices for array

在我遇到这个问题之前,我遇到了另一个问题,涉及上面错误消息所指的下面几行:

Traceback (most recent call last): File "FILE", line 119, in <module> 
gl = data[:, col["G_left" ]] * 1000.0 # column 12 
IndexError: index 12 is out of bounds for axis 1 with size 12

我理解第一个错误,但修复它时遇到问题。但第二个错误让我感到困惑。我的老板真的对我很紧张,所以任何帮助将不胜感激!


我认为问题已在错误消息中给出,尽管不太容易发现:

IndexError: too many indices for array
xs  = data[:, col["l1"     ]]

“索引太多”意味着您给出了太多索引值。您已经给出了 2 个值,因为您期望数据是一个二维数组。 Numpy 抱怨是因为data不是 2D(它要么是 1D,要么是 None)。

这是一种猜测 - 我想知道传递给 loadfile() 的文件名之一是否指向空文件,或者格式错误的文件?如果是这样,您可能会返回一个一维数组,甚至是空数组(np.array(None)不抛出Error,所以你永远不会知道...)。如果你想防止这种失败,你可以在你的程序中插入一些错误检查loadfile功能。

我强烈推荐你的for循环插入:

print(data)

这适用于 Python 2.x 或 3.x,并且可能会揭示问题的根源。您可能会发现这只是您的一个值outputs_l1给出问题的列表(即一个文件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IndexError:数组索引太多 的相关文章

随机推荐

  • 定义宏以将案例类实例转换为映射并返回时出现编译错误

    我试图理解以下博客文章 其中讨论了如何使用宏创建基于宏的通用方法来将案例类对象与地图相互转换 http blog echo sh post 65955606729 exploring scala macros map to case cla
  • Twisted:如何识别初始连接上的协议,然后委托给适当的协议实现?

    我正在编写一个 Python 程序 它将使用 Twisted 连接到 TCP 服务器 套接字另一端的服务器可能正在运行两种可能的协议 protoA 或 protoB 之一 但我不知道它是哪一种 直到我启动连接并 询问 服务器正在使用哪种协议
  • Angular Bootstrap 模态打开加载

    我在用http angular ui github io bootstrap modal 现在我想在页面加载时打开模态 Angular http angular ui github io bootstrap 有一个指令和 modal 服务
  • 强制浏览器使用Javascript window.open 下载图像?

    有没有办法让图像在单击后立即下载 无需右键单击将图像另存为 我正在使用一个小的 Javascript 函数来调用下载页面 a href Click to download a 在 download php 页面中我有类似的内容 file G
  • 我的 CipherOutputStream 无提示地失败

    我正在尝试使用公钥加密 Java 中的一些二进制数据 如这个有用的页面上所述 http www junkheap net content public key encryption java 按照页面的指示 我使用以下命令创建了公钥和私钥
  • 打开重复 div 的图像预览

    我有一个上传图像并向该图像添加预览的功能 我有两个按钮 当我单击第一个按钮时 它会单击输入类型文件并打开它 第二个按钮会复制 div 如何才能我复制这个 div 并更改它的 id 或类 复制后 我怎样才能使按钮适用于新复制的 div 而不是
  • 序列化为 XML 时忽略父类

    当子类列表上有 XmlElement 时 是否有 JAXB 注释可以忽略父类 只是为了澄清 我想知道是否有更好的方法 而不是将所有父类 getter setter 标记为瞬态 然后必须返回子类并添加 getter setter 并将它们注释
  • 使用 PHP 删除缩写日期中的前导零

    我想知道是否有办法使用 PHP 将此日期格式 01 08 86 1986 年 1 月 8 日 更改为此格式 1 8 86
  • 使用谷歌地图API计算两点之间的距离?

    是否可以将两个纬度长点发送给谷歌来计算两者之间的距离 如果您想使用 v3 谷歌地图 API 这里是我使用的函数 注意 必须添加 libraries geometry到你的脚本源 现在的功能 calculates distance betwe
  • dplyr 总结输出 - 如何保存它

    我需要计算 150 个物种中每种鸟类繁殖活动观察结果的汇总统计数据 数据框包含物种 scodef 观察类型 codef 例如筑巢 和序号日期 自 1 月 1 日起的天数 自多年来收集数据以来 使用 dplyr 我得到了我想要的结果 libr
  • 检测 R 会话是否在启动时在 RStudio 中运行 [重复]

    这个问题在这里已经有答案了 我在终端和 RStudio 在 mac 和 linux 上 中都使用 R 想知道是否可以使用不同的 Rprofiles 为两者 或者最好使用相同的碱基 Rprofile但来源不同环境特定的调整脚本 我认为将以下代
  • Mongoid:使用多个数据库?

    我在 Rails 应用程序中使用 MongoDB 和 MongoID 某些模型如何成为同一服务器上不同 mongo 数据库的一部分 我该如何完成这样的事情呢 我之前在mysql上也遇到过同样的问题 但找不到合理的解决方案 有什么想法吗 最新
  • 包装 div 不会随内容 div 一起扩展

    我已经尝试了大约 15 种不同的教程和技巧来让我的页脚 页眉和三个内容 div 正常工作 我的页面将有一个页眉 左侧的导航栏 中间的内容 右侧的商店和 Google 广告以及下方的页脚 现在 在尝试了一些教程之后 我终于让页脚留在包装器下方
  • 我如何使用 Swift 向网站请求文本?

    因此 我正在制作一个 iOS 应用程序 并且制作了一个警报栏 该警报栏会在每次打开应用程序时根据网站上的文本进行更新 但是当我发出 HTTP 请求时 它只提供该网站的 HTML 如何从网页获取文本而不是 HTML 我正在使用下面的 Swif
  • 字体真棒快捷方式

    我在我的网络项目中使用 Awesome Font 是否有任何选项如何创建一堆图标的快捷方式 例如 我有circle thin图标 现在在页面上我想将三个图标放在一起 所以结果是OOO 但我不想放 3x 次 i class fa fa cir
  • opencv - 图像乘法

    嗨 我正在尝试玩一点 Mat 课 我想在两个图像之间进行乘积元素明智 MATLAB 的 c opencv 端口不相乘 这是我的代码 include
  • 使用 ecdf 图中的值创建一个表

    我正在尝试使用 ecdf 图中的值创建一个表 我在下面重新创建了一个示例 Data data mtcars Sort by mpg mtcars lt mtcars order mtcars mpg Make arbitrary ranki
  • 如何在 Windows 8 中以编程方式捕捉应用程序?

    如何以编程方式将 Windows 8 应用程序设置为快照视图 另外 如果屏幕分辨率为 1024 并且不允许捕捉会发生什么 调用这个函数会出现异常吗 回答您的问题 如何以编程方式将 Windows 8 应用程序设置为快照视图 看来这是不可能的
  • jQuery 对话框底部的箭头

    我在用着jQuery 对话框我需要在底部中心显示一个箭头提示jQuery Dialog像下面这样 我怎样才能做到这一点 一种想法是使用 after and before伪元素放置 2 个 CSS 三角形 参见CSS 三角形是如何工作的 彼此
  • IndexError:数组索引太多

    我知道有大量这样的线程 但所有这些线程都适用于非常简单的情况 例如 3x3 矩阵和此类事物 并且这些解决方案甚至不适用于我的情况 所以我试图绘制 G 与 l1 的关系图 这不是 11 而是 L1 数据位于我从 Excel 文件加载的文件中