【一看就懂】ravel()、flatten()、squeeze(),reshape()的用法与区别

ravel(),flatten(),squeeze()三个都有将多维数组转化为一维数组的功能:

  • ravel(): 不会产生原来数据的副本
  • flatten():返回源数据副本
  • squeeze():只能对维度为1的维度降维
  • reshape(-1):可以拉平多维数组
  • PyTorch中还有view也有reshape的效果:
    下面我一个一个来对比

ravel()

arr = np.arange(12).reshape(3,4)
print(arr)
print('-'*20)
print(arr.ravel())
print('-'*20)
print(arr.ravel().reshape(3,4))

结果:
在这里插入图片描述

flatten()

在这里插入图片描述

squeeze()

arr = np.arange(12).reshape(3,4)
print(arr)
print('-'*20)
print(arr.squeeze())
print('-'*20,'squeeze()不能一维化(3,4)的矩阵')
print(arr.reshape(12,1))
print('-'*20)
print(arr.reshape(12,1).squeeze())
print('-'*20,'squeeze()只能一维化有维度是1的矩阵')

结果:

在这里插入图片描述

reshape(-1)

arr = np.arange(12).reshape(3,4)
print(arr)
print('-'*20)
print(arr.reshape(-1))
print('-'*20)

结果:
在这里插入图片描述

觉得有用的话可以收藏关注,博主每天都会更新的!

发布了78 篇原创文章 · 获赞 14 · 访问量 9721

猜你喜欢

转载自blog.csdn.net/qq_34107425/article/details/104127694