numpy中三维数组转变成二维数组

numpy中reshape()函数对三维数组进行转换成二维数组,见下面例子:

 >>>a=np.reshape(np.arange(18),(3,3,2))
>>> a
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]], [[ 6, 7],
[ 8, 9],
[10, 11]], [[12, 13],
[14, 15],
[16, 17]]])
>>>a=reshape(a,(-1,3))
>>>a
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]) >>>a=np.reshape(np.arange(18),(2,3,3))
>>>a
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]], [[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]]])
>>>a=np.reshape(a,(-1,3))
>>>array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]])

易见,对reshape()里面的数组形状第一个为-1,第二个为第二维元素的数目。那么就会对原来的所有元素进行一个平均分配得到一个二维数组。

上一篇:转载:从程序员的角度看ASCII, GB2312, UNICODE, UTF-8


下一篇:PIL对象和numpy三维数组的互相转换