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

yipeiwu_com6年前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)维的数组,而且最后一维的相对位置不变。

以上这篇python将三维数组展开成二维数组的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中的super()方法使用简介

子类里访问父类的同名属性,而又不想直接引用父类的名字,因为说不定什么时候会去修改它,所以数据还是只保留一份的好。其实呢,还有更好的理由不去直接引用父类的名字, 这时候就该super()登...

python+Django+apache的配置方法详解

本文实例讲述了python+Django+apache的配置方法。分享给大家供大家参考,具体如下: 下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-...

使用Selenium破解新浪微博的四宫格验证码

使用Selenium破解新浪微博的四宫格验证码

在我们爬虫的时候经常会遇到验证码,新浪微博的验证码是四宫格形式。 可以采用模板验证码的破解方式,也就是把所有验证码的情况全部列出来,然后拿验证码的图片和这所有情况中的图片进行对比,然后获...

机器学习的框架偏向于Python的13个原因

机器学习的框架偏向于Python的13个原因

13个机器学习的框架偏向于Python的原因,供大家参考,具体内容如下 前言 主要有以下原因: 1. Python是解释语言,程序写起来非常方便 写程序方便对做机器学习的人很重要。...

基于python中theano库的线性回归

theano库是做deep learning重要的一部分,其最吸引人的地方之一是你给出符号化的公式之后,能自动生成导数。本文使用梯度下降的方法,进行数据拟合,现在把代码贴在下方 代码块...