是否有任何内置的numpy函数可以获得:
a=np.asarray([[[1,2],[3,4]],[[1,2],[3,4]]])
然后会回来:
b=[[1,2],[3,4],[1,2],[3,4]]
?像是一层扁平的东西。
P.S。我正在寻找一个矢量化选项,否则这个哑代码可用:
flat1D(a):
b=np.array([])
for item in a:
b=np.append(b,item)
return b
答案 0 :(得分:8)
您可以简单地重塑数组。
>>> a.reshape(-1,a.shape[-1])
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
显示的代码返回一维数组,以执行此操作:
>>> a.ravel()
array([1, 2, 3, 4, 1, 2, 3, 4])
或者,如果您确定要复制数组:
>>> a.flatten()
array([1, 2, 3, 4, 1, 2, 3, 4])
ravel和flatten之间的区别主要来自flatten将始终返回副本的事实,ravel将返回视图(如果可能)和副本(如果可能)。
答案 1 :(得分:0)
如果你知道新数组的维度,可以将它们指定为元组On Error GoTo 5865
并使用(4,2)
.reshape()