Cup*_*tor 4 python arrays numpy
是否有任何内置的numpy函数可以得到:
a=np.asarray([[[1,2],[3,4]],[[1,2],[3,4]]])
Run Code Online (Sandbox Code Playgroud)
并会回来:
b=[[1,2],[3,4],[1,2],[3,4]]
Run Code Online (Sandbox Code Playgroud)
?像一层扁平化的东西.
PS我正在寻找一个矢量化选项,否则这个哑代码可用:
flat1D(a):
b=np.array([])
for item in a:
b=np.append(b,item)
return b
Run Code Online (Sandbox Code Playgroud)
您可以简单地重塑阵列.
>>> a.reshape(-1,a.shape[-1])
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
Run Code Online (Sandbox Code Playgroud)
显示的代码返回一维数组,为此:
>>> a.ravel()
array([1, 2, 3, 4, 1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
或者,如果您确定要复制数组:
>>> a.flatten()
array([1, 2, 3, 4, 1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)
ravel和flatten之间的区别主要来自flatten将始终返回副本的事实,ravel将返回视图(如果可能),如果不是则返回副本.