Numpy中ravel()和flatten()的区别是什么
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这期内容当中小编将会给大家带来有关Numpy中ravel()和flatten()的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在Numpy中经常使用到的
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
湖北九亚互联网络科技有限公司
互联网科技官网
互联网与科技发展
苏州互联网科技贷款公司
互联网科技ppt模板
互联网科技logo
齐家互联网科技有限公司
深圳期待互联网科技
科技类的互联网平台
苏州铭阳互联网科技有限公司
成都互联网科技公司工作好不好
广州新华互联网科技学校电竞方面
互联网第三次科技革命特征
互联网金融科技公司的优势
广州百诚互联网科技有限公司官网
互联网的科技体现在哪里
六子台科技互联网展会
中国主要互联网科技公司
互联网科技企业文化
互联网和科技技术
猪兼强互联网科技
互联网科技公司电话
深圳天众互联网科技公司
互联网 科技服务平台
呼和浩特新华互联网科技学院
世界互联网领先科技成果获奖
四川互联网展示科技馆设计
杭州融税互联网科技有限公司
前海云享互联网科技