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中sleep函数用法实例分析
Apr 29 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
Python中生成Epoch的方法
Apr 26 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
浅析python的Lambda表达式
Feb 27 Python
详解python实现数据归一化处理的方式:(0,1)标准化
Jul 17 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
Python 日期的转换及计算的具体使用详解
Jan 16 Python
python yield和Generator函数用法详解
Feb 10 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
pandas提升计算效率的一些方法汇总
May 30 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python编程之string相关操作实例详解
2017/07/22 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
值得收藏的10道python 面试题
2019/04/15 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
如何通过python实现全排列
2020/02/11 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
C++是不是类型安全的
2014/02/18 面试题
服装厂厂长职责
2013/12/16 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书