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的发展史
Sep 26 Python
python实现的文件夹清理程序分享
Nov 22 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
python操作oracle的完整教程分享
Jan 30 Python
python 利用栈和队列模拟递归的过程
May 29 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
Python实现京东秒杀功能代码
May 16 Python
Python3实现定时任务的四种方式
Jun 03 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 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使HTML标签自动补全闭合函数代码
2012/10/04 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
化学系大学生自荐信范文
2014/03/01 职场文书
学历公证书范本
2014/04/09 职场文书
养牛场项目建议书
2014/05/13 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
最美家庭活动方案
2014/08/31 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
python实现简单的聊天小程序
2021/07/07 Python