Numpy 改变数组维度的几种方法小结


Posted in Python onAugust 02, 2018

来自 《Python数据分析基础教程:Numpy 学习指南(第2版)》

Numpy改变数组维度的方法有:

reshape()
ravel()
flatten()

用元组设置维度

transpose()
resize()

下面将依次进行说明

0. 首先,创建一个多维数组

from numpy import * 
a = arange(24)

得到:

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

1.reshape 函数

b = a.reshape(2,3,4)
print(b)

得到一个 2*3*4 维的数组:

[[[ 0 1 2 3]
 [ 4 5 6 7]
 [ 8 9 10 11]]
 
 [[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]]

可以想象成2层小洋楼,每层有 3*4 个房间

2.ravel函数 可以将多维数组展平(也就是变回一维)

c = b.ravel()
print(c)

得到一维数组

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

3.flatten函数 也是将多维数组展平,与ravel函数的功能相同,不过flatten函数会请求分配内存来保存结果,而ravel函数只是返回数组的一个视图(view)

c = b.flatten()
print(c)

得到一维数组

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

4.用元组设置维度

直接用一个正整数元组来设置数组的维度

b.shape = (6,4)
print(b)

这种做法将直接改变所操作的数组,现在数组b变成了一个 6*4 的多维数组

[[ 0 1 2 3]
 [ 4 5 6 7]
 [ 8 9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]

5.transpose函数 将矩阵进行转置

d = b.transpose()
print(d)

得到 4*6 的多维数组

[[ 0 4 8 12 16 20]
 [ 1 5 9 13 17 21]
 [ 2 6 10 14 18 22]
 [ 3 7 11 15 19 23]]

6.resize函数 和reshape函数的功能一样,但resize会直接修改所操作的数组

b.resize((2,12))
print(b)

得到 2*12 的两维数组

[[ 0 1 2 3 4 5 6 7 8 9 10 11]
 [12 13 14 15 16 17 18 19 20 21 22 23]]

并且这一步不可以通过赋值来实现,如下所示:

e = b.resize((2,12))
print(e)

此时结果为:

None

以上这篇Numpy 改变数组维度的几种方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式匹配中文用法示例
Jan 17 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
Python中的asyncio代码详解
Jun 10 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
python字符串的index和find的区别详解
Jun 20 Python
Python extract及contains方法代码实例
Sep 11 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
python 字典中取值的两种方法小结
Aug 02 #Python
python 剪切移动文件的实现代码
Aug 02 #Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 #Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 #Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 #Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 #Python
Python列表推导式与生成器用法分析
Aug 02 #Python
You might like
PHP分页函数代码(简单实用型)
2010/12/02 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
微信小程序登录换取token的教程
2018/05/31 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
建筑自我鉴定
2013/10/19 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
先进集体申报材料
2014/12/25 职场文书
个人专业技术总结
2015/03/05 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
Go语言基础知识点介绍
2021/07/04 Golang
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
Python中time标准库的使用教程
2022/04/13 Python