np.resize 和 np.reshape 的区别

二者都是改变输入的形状,但是区别是: reshape只能改变形状,不能改变原始输入包含的元素个数

                                                                 resize可以改变尺寸。

具体看下面的例子:

import numpy as np

a = [[1,2,3],[4,5,6]]

b1 = np.reshape(a,[1,6])
b2 = np.resize(a,[2,2])
b3 = np.resize(a,[2,10])
a = np.array(a)
a.resize([2,10])

print("reshape:\n",b1)
print("resize:\n",b2)
print("resize:\n",b3)
print("resize:\n",a)

输出结果:

reshape:
 [[1 2 3 4 5 6]]
resize:
 [[1 2]
 [3 4]]
resize:
 [[1 2 3 4 5 6 1 2 3 4]
 [5 6 1 2 3 4 5 6 1 2]]
resize:
 [[1 2 3 4 5 6 0 0 0 0]
 [0 0 0 0 0 0 0 0 0 0]]

可以发现,resize在尺寸缩小时,只保留一部分元素;在尺寸扩大的时候,它会重复使用原始输入的元素值进行填充(也可以通过 a.resize() 的方式实现用0进行填充)。

特别注意的一点是:这两个函数只是改变形状,虽然resize可以改变尺寸,但是只是进行简单的裁剪和填充。如果想更加精确的使用插值的方式进行尺寸的扩大或缩小,比如改变一副图像的形状,则不能用这个函数进行。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值