【问题标题】:IndexError: too many indices for array using numpyIndexError:使用numpy的数组索引过多
【发布时间】:2020-07-03 11:01:52
【问题描述】:

我无法解决这个问题。我正在使用 python numpy。而我的目标是打印红绿灯倒计时。

编辑:就像在 1 个十字路口,有 8 个红绿灯和 3 个时间(红色、琥珀色、绿色)。但我的加号交叉点由 4 个交叉点组成。

8 个红绿灯意味着 笔直的道路,从北到南 直路,南向北 直道,东向西 直路,西向东

左转,从北到西 左转,从西到北 左转,从北到东 左转,从东到南

//edited
t = np.zeros((4, 8, 3)) //4 intersections, 8 stoplights, 3 timings

 for i in range(8):
   for j in range(4):
       t[j,i,0] = 10
       t[j,i,1] = 5
       t[j,i,2] = 10 

在上述代码中,它会给出错误“数组中的索引过多”

t[j,i,0] = 10
t[j,i,1] = 5
t[j,i,2] = 10

谁能告诉我为什么以及如何解决这个问题。

【问题讨论】:

  • 最后一段格式化代码是干什么用的?
  • 我想它可能只是你这样访问:t[0] = 4, t[1] = 8, t[2]=3 所以它应该只需要 1 个索引作为它在数组中的位置。
  • 您刚刚创建了 1D 数组,但您可能正在尝试创建 3D 数组。
  • 你想在`t[j,i,0]`中做什么
  • @ShivamJha j and i 有 4 个(用于十字路口)和 8 个(用于红绿灯)

标签: python numpy numpy-ndarray


【解决方案1】:

如果你想创建一个 3 维数组,可能你应该这样做:

t = np.zeros((4,8,3))

您实际上是在创建一个由元素 4、8、3 组成的一维数组

【讨论】:

    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2020-03-04
    • 2020-09-26
    • 2019-07-17
    相关资源
    最近更新 更多