【发布时间】:2021-03-14 15:12:03
【问题描述】:
我是 python 新手。当我尝试将二维数组插入 3d 数组时,出现如下错误:
ValueError: could not broadcast input array from shape (9,9) into shape (9)
这是我的代码:
tables = np.zeros((10, 9, 9))
currentRoundTable = np.zeros((9, 9))
np.insert(tables, 0, currentRoundTable)
tables.pop()
目的是创建一个队列,其中tables[0]总是最新的元素(一个二维数组),最旧的会被弹出。
有谁知道我该如何解决这个问题?非常感谢!
【问题讨论】:
-
只需将
axis=0添加到插入调用中。顺便说一句,你不能从这样的数组中弹出。 -
@FelipeLanza 嗨,谢谢!它起作用了,现在我的问题变成了:我怎样才能从这样的数组中弹出。哈哈!
-
numpy数组对于类似队列的操作不是最佳的。插入和删除元素的操作都需要创建一个全新的数组,这是一个相对昂贵的操作。 -
如果您需要一个数组队列,
collections.deque可能会更好。
标签: python arrays python-3.x numpy