比如我有个numpy array如下:
>>> a
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
有什么办法可以可以把a转换为一维的array
array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
或者list的形式?
感谢各位!
4个回答
numpy的array有flatten()方法
>>> a.flatten()
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
如果想要按列展开,可以设置参数为'F'
>>> a.flatten('F')
array([ 1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 12])
可以使用flatten与ravel两个函数,区别可以看看下面代码,根据你的需求进行选取
>>> x = np.array([[1, 2], [3, 4]])
>>> y = x.flatten()
>>> y
array([1, 2, 3, 4])
>>> y[0] = 9
>>> y
array([9, 2, 3, 4])
>>> x
array([[1, 2],
[3, 4]])
>>> z = x.ravel()
>>> z
array([1, 2, 3, 4])
>>> z[0] = 8
>>> z
array([8, 2, 3, 4])
>>> x
array([[8, 2],
[3, 4]])