numpy学习笔记1—ravel() 和 flatten()
numpy的ravel() 和 flatten()函数
简介
首先声明两者所要实现的功能是一致的(将多维数组降位一维)。这点从两个单词的意也可以看出来,ravel(散开,解开),flatten(变平)。两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,而numpy.ravel()返回的是视图(view,也颇有几分C/C++引用reference的意味),会影响(reflects)原始矩阵。
两者功能
In [14]: x=np.array([[1,2],[3,4]])# flattenh函数和ravel函数在降维时默认是行序优先
In [15]: x.flatten()
Out[15]: array([1, 2, 3, 4])In [17]: x.ravel()
Out[17]: array([1, 2, 3, 4])# 传入'F'参数表示列序优先
In [18]: x.flatten('F')
Out[18]: array([1, 3, 2, 4])In [19]: x.ravel('F')
Out[19]: array([1, 3, 2, 4])#reshape函数当参数只有一个-1时表示将数组降为一维
In [21]: x.reshape(-1)
Out[21]: array([1, 2, 3, 4])
#x.T表示x的转置
In [22]: x.T.reshape(-1)
Out[22]: array([1, 3, 2, 4])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
两者区别
>>> x = np.array([[1, 2], [3, 4]])
>>> x.flatten()[1] = 100
>>> x
array([[1, 2],[3, 4]])
>>> x.ravel()[1] = 100
>>> x
array([[ 1, 100],[ 3, 4]])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
通过上面的程序可以发现flatten函数返回的是拷贝。
原文链接:numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()
numpy学习笔记1—ravel() 和 flatten()相关推荐
- Numpy学习笔记(下篇)
目录 Numpy学习笔记(下篇) 一.Numpy数组的合并与分割操作 1.合并操作 2.分割操作 二.Numpy中的矩阵运算 1.Universal Function 2.矩阵运算 3.向量和矩阵运算 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- NumPy学习笔记 一
NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- numpy学习笔记:np.zeros应用——生成三通道全黑Mask(蒙版)
numpy学习笔记:np.zeros应用--生成三通道全黑Mask(蒙板) np.zeros官方文档:np.zeros官方文档 下面是一段生成256*256三通道全黑mask的demo import ...
- NumPy学习笔记前言
前言目录 NumPy学习笔记前言 NumPy简介 NumPy学习准备 NumPy中文网 NumPy学习笔记前言 这里主要分享一下我个人学习NumPy的笔记,希望大家多多交流学习,这也是我第一次写CSD ...
- 【Numpy学习笔记】
Numpy学习笔记 1. NumPy的详细教程(官网手册翻译) https://blog.csdn.net/xiaoxiangzi222/article/details/53084336 2. 学习笔 ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- 【Numpy学习笔记1】numpy安装、维度、基本运算、改变数据形态
1.Numpy使用场景 需要批量处理数据的时候 机器学习,人工智能这些需要进行海量数据运算处理的地方 写游戏里面的物体运行逻辑时,经常涉及到矩阵.向量运算 机器人模拟环境,背后的环境反馈信息,全是靠批 ...
- 最简易上手的numpy学习笔记三
1 数组的复制 2 改变数组的维度 改变这些数组的维度,包含提高数组的维度和降低数组的维度,还包括数组的转置. 通过reshape方法可以将一维数组变成二维.三维或者多维数组.通过ravel方法或fl ...
- numpy学习笔记(莫烦python)
import numpy as np numpy属性 array = np.array([[1,2,3],[2,3,4]]) print(array) print('number of dim',ar ...
最新文章
- ios超级签名_ios超级签名何以固若金汤?原因在这里
- 【Oracle】查找每期数据都存在的产品
- 【原创】SSRS (SQL Serve Reporting Service) 访问权限的问题
- mysql主从克隆服务器_mysql主从复制服务器配置
- SAP Spartacus list item点击之后的detail页面跳转
- php echo 大括号,PHP中echo输出中存在括号()的处理
- android 代码 华为 os,Android | 带你零代码实现安卓扫码功能
- 【linux高级程序设计】(第十一章)System V进程间通信 4
- Caused by: org.hibernate.HibernateException: unknown Oracle major version [0]
- 中国游戏发展史V-02
- java设计模式,百度网盘
- 如何快速出机械工程图
- mysql静默安装_mysql5.7静默安装
- 【22】像素分辨率像元的计算及含义
- 正则匹配0-999区间数字
- 蓝桥杯真题——第39级台阶
- excel表格公式出现#REF是什么意思
- STORJ 有实际应用
- 孙子定理c语言程序,中国剩余定理(孙子定理)的证明和c++求解
- 英语学习(十)疑问句及否定句
热门文章
- cgb2106-day12
- python对律师的作用_一场官司中律师的作用有多大?
- Could not find a price list in Ordered UOM xxx and Primary UOM of the item
- 利用单片机给直流升压
- Fite-C02-1班成员学习进度记录
- hdu 4484 Hailstone HOTPO
- linux中IGV的运行,科学网—使用UCSC和IGV查看reads在基因组上分布情况 - 熊朝亮的博文...
- 使用微擎后台授权须知
- system32下 exe文件作用
- java target文件夹_Maven不会创建“/ target / m2e-wtp / web-resources”文件夹