numpy学习笔记(tips)——ravel()与flatten()函数区别

总结:

:都能将矩阵变为向量(即扁平化)
:将扁平化的结果传给一个变量,对于ravel()来说,改变这个变量原矩阵也会改变(即传入的是引用而不是复制)
建议:尽量使用flatten()函数,以免造成不必要的错误

代码解释:

from numpy import *

a = arange(12).reshape(3,4)
print(a)
'''
输出:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''
b = a.copy()  # 创建一个和a相同内容的数组b
c = a.ravel()
d = b.flatten()
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结果相同

# 在修改c的时候,a中相应的数也改变了
c[1] = 99
d[1] = 99
print(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]]
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值