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)
结果:
觉得有用的话可以收藏关注,博主每天都会更新的!