【一看就懂】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))

结果:
【一看就懂】ravel()、flatten()、squeeze(),reshape()的用法与区别_第1张图片

flatten()

【一看就懂】ravel()、flatten()、squeeze(),reshape()的用法与区别_第2张图片

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的矩阵')

结果:

【一看就懂】ravel()、flatten()、squeeze(),reshape()的用法与区别_第3张图片

reshape(-1)

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

结果:
【一看就懂】ravel()、flatten()、squeeze(),reshape()的用法与区别_第4张图片

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

公众号回复【下载】有精选的免费机器学习学习资料。 公众号每天会更新一个机器学习、深度学习的小知识,都是面试官会问的知识点哦~

  • 【机器学习的基础数学(PDF)】
  • 【竞赛中的大数据处理流程(PDF)】
  • 【如何做大数据的基础特征工程(PDF)】
  • 【自然语言处理NLP的应用实践大合集(PDF)】
  • 【python入门级教材(400页PDF)】

公众号每天会更新一个机器学习、深度学习的小知识,都是面试官会问的知识点哦~

在这里插入图片描述

你可能感兴趣的:(python小知识,numpy,python,降维)