Python 如何将二维阵列附加到三维阵列?
我有一个三维嵌套列表,构造如下:Python 如何将二维阵列附加到三维阵列?,python,list,numpy,Python,List,Numpy,我有一个三维嵌套列表,构造如下: [[[1,1],[2,1],[2,2],[1,2]],[[-1,-1],[-2,-1],[-2,-2],[-1,-2]]] 我想用[[0,0]]来得到这个结果: [[[1,1],[2,1],[2,2],[1,2]],[[-1,-1],[-2,-1],[-2,-2],[-1,-2]],[[0,0]]] 我尝试使用numpy.append和column\u stack方法,但它抱怨维度不匹配。如何正确操作?问题是,一旦您有了一个带有shape(2,4,2)的nu
[[[1,1],[2,1],[2,2],[1,2]],[[-1,-1],[-2,-1],[-2,-2],[-1,-2]]]
我想用[[0,0]]
来得到这个结果:
[[[1,1],[2,1],[2,2],[1,2]],[[-1,-1],[-2,-1],[-2,-2],[-1,-2]],[[0,0]]]
我尝试使用
numpy.append
和column\u stack
方法,但它抱怨维度不匹配。如何正确操作?问题是,一旦您有了一个带有shape(2,4,2)
的numpy
数组,除非您将列表视为对象,否则您就无法真正附加另一个带有shape(1,1,2)
的数组(即,将一个元素附加到一个大小为2
的数组中,以便最终得到一个大小为3
的数组)
如果您有一个numpy
数组,其中包含list
对象,您将无法从numpy
提供的大部分功能中获益,因此,也许可以更详细地解释一下您在这里到底想实现什么
>>a=np.数组([[1,1],[2,1],[2,2],[1,2],[[-1,-1],-2,-1],-2,-2],-1,-2])
>>>b=np.array([[0,0]]])
>>>a.形状,b.形状
((2, 4, 2), (1, 1, 2))
>>>c=np.array(a.tolist()+b.tolist())
>>>c
数组([list([[1,1],[2,1],[2,2],[1,2]]),
列表([-1,-1],-2,-1],-2,-2],-1,-2]),列表([[0,0]]),
数据类型=对象)
>>>c.形状
(3,)
>>>c.托利斯特()
[[[1, 1], [2, 1], [2, 2], [1, 2]],
[[-1, -1], [-2, -1], [-2, -2], [-1, -2]],
[[0, 0]]]
最后一个值是您似乎要查找的列表。您不必使用
numpy
完成此过程即可获得它,并且可以像其他人建议的那样简单地append
。猜怎么着,我可以使用默认的append
函数;我不知道该函数不返回新数组这是numpy吗.array
或内置的列表
?如果它是一个列表,那么a.append([[0,0]])
应该可以工作。你不能在numpy
中这样做,但可以在列表
中使用append
方法。[[1,1],[2,2],[1,2]][/code>和[-1,--1],-2],-2]]
是矩形顶点的坐标,[[0,0]]
是点的坐标,我想将其添加到具有矩形的数组中(用于以后的处理)。numpy旨在帮助您处理向量、矩阵、张量等。它允许您执行各种操作,但不能有“行”这是不完整的,因此您可能希望使用纯列表,只需将您的点附加到以前的“形状”列表中即可。是的,请小心使用numpy
函数。如果您从列表开始,并希望得到列表结果,则使用numpy
通常速度较慢,并且可能错误。