赞
踩
以前写过一篇:python将两个二维array叠加成三维array的实现方法
,
这篇文章尝试用“曲线救国”的方法来解决二维数组叠加成三维数组的问题。
但天道有轮回,苍天绕过谁。好不容易把数组叠加在一块儿了,新的需求又出现了:将三维数组展开成二维数组。有借有还,再借不难。今天就来解决把三维数组展开成二维数组的问题。
相对于叠加三维数组,numpy对展开数组支持得很好,只需要用好np.reshape(A,(a,b))
函数即可。
用到的参数:
当然,如果某一个维度长度不确定,也可以用-1代替。
看下面这个例子:
A = np.reshape(np.arange(24),(4,3,2)) ##生成一个数值从0到23,维度为(4,3,2)的数组
print(A)
print('A的维度:',A.shape)
B = np.reshape(A,(-1,2))
print(B)
print('B的维度:',B.shape)
结果:
A: [[[ 0 1] [ 2 3] [ 4 5]] [[ 6 7] [ 8 9] [10 11]] [[12 13] [14 15] [16 17]] [[18 19] [20 21] [22 23]]] A的维度:(4,3,2) B: [[ 0, 1], [ 2, 3], [ 4, 5], [ 6, 7], [ 8, 9], [10, 11], [12, 13], [14, 15], [16, 17], [18, 19], [20, 21], [22, 23]] B的维度:(12, 2)
可以看到,原来的(4,3,2)维的数组被展开成了(12,2)维的数组,而且最后一维的相对位置不变。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。