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标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
python中kmeans聚类实现代码
Feb 23 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
Pandas GroupBy对象 索引与迭代方法
Nov 16 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
Django框架用户注销功能实现方法分析
May 28 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python基于time模块表示时间常用方法
Jun 18 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
详解torch.Tensor的4种乘法
Sep 03 Python
Python必备技巧之字符数据操作详解
Mar 23 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获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
JS无限树状列表实现代码
2011/01/11 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
什么是Vue.js框架 为什么选择它?
2017/10/17 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
Python3 操作符重载方法示例
2017/11/23 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
python判断元素是否存在的实例方法
2020/09/24 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
《花的勇气》教后反思
2014/02/12 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
扬尘污染防治方案
2014/06/15 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2014年财政局工作总结
2014/12/09 职场文书
新闻稿标题
2015/07/18 职场文书