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信息抽取之乱码解决办法
Jun 29 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
Python实现微信好友的数据分析
Dec 16 Python
解决python 找不到module的问题
Feb 12 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
May 13 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
Python基础之元组与文件知识总结
May 19 Python
Python之基础函数案例详解
Aug 30 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
JS中使用变量保存arguments对象的方法
2016/06/03 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
Python命令行click参数用法解析
2019/12/19 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
UDP协议功能
2013/01/06 面试题
高分子材料与工程专业个人求职信
2013/12/15 职场文书
社区庆八一活动方案
2014/02/02 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers