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 获取文件列表(或是目录例表)
Mar 25 Python
Python实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
python图像处理之反色实现方法
May 30 Python
Python正则表达式经典入门教程
May 22 Python
python学习必备知识汇总
Sep 08 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
python绘制直方图和密度图的实例
Jul 08 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
PyTorch预训练Bert模型的示例
Nov 17 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP7匿名类用法分析
2016/09/26 PHP
php 基础函数
2017/02/10 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
单利模式及python实现方式详解
2018/03/20 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
python 穷举指定长度的密码例子
2020/04/02 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
全球度假村:Club Med
2017/11/27 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
工艺工程师岗位职责
2014/03/04 职场文书
平安校园建设方案
2014/05/02 职场文书
企业金融服务方案
2014/06/03 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers