【发布时间】:2019-09-02 18:17:01
【问题描述】:
我有一个像这样的 numpy 二维数组 [[[1,1,1],[5,7,3]],[[1,4,5],[8,3,9]]]
我想在我的一个专栏中添加一个三元组[0,0,0]。
我用这种方式尝试了函数np.append:
np.append(myArray, [[0,0,0]], axis=0)
但它给了我错误:
all the input arrays must have same number of dimensions.
于是我尝试了:
myArray[0]=np.append(myArray[0], [[0,0,0]], axis=0)
得到我想要的列,但我得到了错误:
could not broadcast input array from shape (3,3) into shape (2,3).
有没有办法将我的三元组添加到myArray 的一列中?
【问题讨论】:
-
你的原始数据结构是两个 Numpy 数组的 Python 列表吗?您收到的错误表明您实际上是在使用 3D 数组来包含所有内容。
myArray.ndim返回什么?如果它返回 3,则很可能是这种情况,您应该使用外部列表来包含 2 个内部 2D 数组。但是,如果myArray已经是一个列表,它应该会产生错误,这很好。 -
如果我理解正确,那么没有。你不能有一个“列”(不确定你指的是哪个维度,因为你有一个 3D 数组 - 第二个?)比另一个长。如果不等长度真的很重要,您可以使用列表列表而不是数组。您将如何使用无法与普通数组一起使用的锯齿状数组?编辑 - 我实际上也对数组的维度/是否涉及列表感到困惑
-
您的预期结果是什么?
-
谢谢大家的回答,终于找到解决办法了。我刚刚制作了列表列表,现在似乎可以使用。
标签: python arrays numpy append