Numpy中ravel()和flatten()的区别是什么
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这期内容当中小编将会给大家带来有关Numpy中ravel()和flatten()的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Numpy中经常使用到的
千家信息网最后更新 2025年12月02日Numpy中ravel()和flatten()的区别是什么
这期内容当中小编将会给大家带来有关Numpy中ravel()和flatten()的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
在Numpy中经常使用到的操作由扁平化操作,Numpy提供了两个函数进行此操作,他们的功能相同,但在内存上有很大的不同.
先来看这两个函数的使用:
from numpy import * a = arange(12).reshape(3,4)print(a)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]print(a.ravel())# [ 0 1 2 3 4 5 6 7 8 9 10 11]print(a.flatten())# [ 0 1 2 3 4 5 6 7 8 9 10 11]
可以看到这两个函数实现的功能一样,但我们在平时使用的时候flatten()更为合适.在使用过程中flatten()分配了新的内存,但ravel()返回的是一个数组的视图.视图是数组的引用(说引用不太恰当,因为原数组和ravel()返回后的数组的地址并不一样),在使用过程中应该注意避免在修改视图时影响原本的数组.这是什么意思咧,我们通过代码来具体解释:
from numpy import *a = arange(12).reshape(3,4)print(a)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]# 创建一个和a相同内容的数组bb = a.copy()c = a.ravel()d = b.flatten()# 输出c和d数组print(c)# [ 0 1 2 3 4 5 6 7 8 9 10 11]print(d)# [ 0 1 2 3 4 5 6 7 8 9 10 11]# 可以看到c和d数组都是扁平化后的数组,具有相同的内容print(a is c)# Falseprint(b is d)# False# 可以看到以上a,b,c,d是四个不同的对象# 但因为c是a的一种展示方式,虽然他们是不同的对象,但在修改c的时候,a中相应的数也改变了c[1] = 99d[1] = 99print(a)# [[ 0 99 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]print(b)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]print(c)# [ 0 99 2 3 4 5 6 7 8 9 10 11]print(d)# [ 0 99 2 3 4 5 6 7 8 9 10 11]
上述就是小编为大家分享的Numpy中ravel()和flatten()的区别是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
数组
内容
不同
相同
两个
函数
视图
内存
功能
对象
扁平
时候
过程
分析
合适
很大
恰当
专业
中小
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
建设网络安全应急响应机制
华南x79能用服务器内存嘛
皖西学院网络安全与信息化
车企软件开发流程标准
步步宝每天维修服务器吗
鹿泉区委网络安全委员会
数码宝贝服务器未开放
成都乐育网络技术有限公司
数据库是dns吗
电脑共享网络安全吗
天涯明月刀服务器列表
第一届网鼎杯网络安全大赛
太仓安钦软件开发有限公司
csc网络安全上岗证
网络安全法 产品审查
南山坪中学网络安全课
刺激战场下载后不能连接服务器
做app软件开发累不累
在nas上可以安装数据库
网络安全工程师在线学习
数字龙江网络安全
碧蓝幻想怎么看服务器
浙江标准软件开发试验设备
如何表扬网络技术人员
数据库应用基础实验5
如何设置管家婆数据库密码
2018 网络技术
福田做商城软件开发哪家便宜
手机助手软件开发
邮箱新建的pop服务器怎么填