numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()
首先声明两者所要实现的功能是一致的(将多维数组降位一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,而numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。
1. 两者的功能
>>> x = np.array([[1, 2], [3, 4]])
>>> x
array([[1, 2],[3, 4]])
>>> x.flatten()
array([1, 2, 3, 4])
>>> x.ravel()
array([1, 2, 3, 4])两者默认均是行序优先
>>> x.flatten('F')
array([1, 3, 2, 4])
>>> x.ravel('F')
array([1, 3, 2, 4])>>> x.reshape(-1)
array([1, 2, 3, 4])
>>> x.T.reshape(-1)
array([1, 3, 2, 4])
2. 两者的区别
>>> x = np.array([[1, 2], [3, 4]])
>>> x.flatten()[1] = 100
>>> x
array([[1, 2],[3, 4]]) # flatten:返回的是拷贝
>>> x.ravel()[1] = 100
>>> x
array([[ 1, 100],[ 3, 4]])
References
[1] What is the difference between flatten and ravel functions in numpy?
numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()相关推荐
- numpy 辨异(二) —— np.identity()/np.eye()
import numpy as np; 两者在创建单位矩阵上,并无区别,两者的区别主要在接口上: np.identity(n, dtype=None):只能获取方阵,也即标准意义的单位阵: np.ey ...
- numpy 辨异(四)—— np.repeat 与 np.tile
>> import numpy as np >> help(np.repeat) >> help(np.tile) 二者执行的是均是复制操作: np.repeat: ...
- numpy 辨异(三)—— hstack/column_stack,linalg.eig/linalg.eigh
1. np.hstack np.column_stack >>> np.hstack([np.array([1, 2, 3]), np.array([4, 5, 6])]) arra ...
- numpy 辨异(一) —— reshape 与 resize
0. reshape的参数 reshape的参数严格地说,应该是tuple类型(tuple of ints),似乎不是tuple也成(ints). >>> x = np.random ...
- numpy中ravel函数、flatten函数的功能及差异
numpy中ravel函数.flatten函数的功能及差异 >>> import numpy as np >>> a = np.arange(20).reshape ...
- numpy.ravel() vs numpy.flatten()
numpy.ravel() vs numpy.flatten() 首先声明两者所要实现的功能是一致的(将多维数组降位一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.fl ...
- matlab flatten,Numpy中扁平化函数ravel()和flatten()的区别
在Numpy中经常使用到的操作由扁平化操作,Numpy提供了两个函数进行此操作,他们的功能相同,但在内存上有很大的不同. 先来看这两个函数的使用: from numpy import * a = ar ...
- 展平数组(flatten、ravel)--numpy
1. flatten()函数 1.1 函数功能 返回将输入数组展平成一维的副本数组,生成的新数组是原数组的深层拷贝(copy),两个数组相互独立,对新数组的修改不会影响原数组 1.2 函数语法 nda ...
- numpy 数组抽取_清晰易懂的Numpy入门教程
原标题:清晰易懂的Numpy入门教程 翻译 | 石头 来源 | Machine Learning Plus Numpy是python语言中最基础和最强大的科学计算和数据处理的工具包,如数据分析工具pa ...
最新文章
- 物理层与综合布线【笔记】
- 一个aov网用邻接矩阵表示_一起看看啥是图论算法-第一期:图的基本表示
- AngularJs学习笔记--E2E Testing
- Opencv——写入或读取数据到XML或YAML文件
- 2014全国计算机二级vfp模拟试题和答案,2014年全国计算机二级考试VF模拟试题
- LeetCode 2121. 相同元素的间隔之和(前缀和)
- 引发了未经处理的异常:读取访问权限冲突_从零开始学Python:23课-文件读写和异常处理
- linux-centos7中lnmp服务器编译安装含systemctl启动service(转)
- 西瓜书boosting learning 集成的错误率推导
- 2492 上帝造题的七分钟 2
- ckplayer ajax,旋风解析
- Vector CANape的使用记录
- 树突状细胞(DC细胞)特征及应用进展综述
- Nginx反向代理跨域访问气象局天气接口
- 什么是跨域?以及跨域的解决方案!
- 如何快速上手Mac电脑?mac新手教程 Mac电脑新手必看
- 世界上最神奇的数字是:142857
- Android 腾讯TUIKIT IM即时通信聊天界面语音问题备忘
- Strange Printer
- 入门学习Nginx代理服务器?就看这篇Nginx进阶学习最佳配置实践指南
热门文章
- 报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来
- html select 事件 jquery,通过jquery触发select自身的change事件
- vue状态管理存取数据_Vue中的数据通信和状态管理
- LeetCode 104.二叉树的最大深度(递归)
- 删除一个带有文件的文件夹
- Flink1.6系列之—数据流编程模型
- BZOJ4336: BJOI2015 骑士的旅行
- 移植最新版libmemcached到VC++的艰苦历程和经验总结(上)
- ECMAScript 6 + Babel
- 2017/9/5的学习内容___Python装饰器的应用