网络编程
位置:首页>> 网络编程>> Python编程>> python将三维数组展开成二维数组的实现

python将三维数组展开成二维数组的实现

作者:东写西读1  发布时间:2023-01-07 06:34:30 

标签:python,三维数组,二维数组

以前写过一篇:python实现把两个二维array叠加成三维array示例

这篇文章尝试用“曲线救国”的方法来解决二维数组叠加成三维数组的问题。

但天道有轮回,苍天绕过谁。好不容易把数组叠加在一块儿了,新的需求又出现了:将三维数组展开成二维数组。有借有还,再借不难。今天就来解决把三维数组展开成二维数组的问题。

相对于叠加三维数组,numpy对展开数组支持得很好,只需要用好np.reshape(A,(a,b)) 函数即可。

用到的参数:

A:需要被重新组合的数组

(a,b): 各个维度的长度。比如要想展开成二维数组,那么(a,b)就是展开成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)维的数组,而且最后一维的相对位置不变。

来源:https://blog.csdn.net/u013044310/article/details/86383162

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com