【问题标题】:I want to add triplets inside a 2D array我想在二维数组中添加三元组
【发布时间】: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


【解决方案1】:

嵌套列表或二维数组的形状必须是矩形。这意味着所有行都有相同的列,所有列都有相同的行。你可以看到这个: setting null values in a numpy array 将空值添加到您的数组中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    相关资源
    最近更新 更多