numpy 辨异(一) —— reshape 与 resize

0. reshape的参数

reshape的参数严格地说,应该是tuple类型(tuple of ints),似乎不是tuple也成(ints)。

>>> x = np.random.rand(2, 3)
>>> x.reshape((3, 2))
                                    # 以tuple of ints
array([[ 0.19399632,  0.33569667],
       [ 0.36343308,  0.7068406 ],
       [ 0.89809989,  0.7316493 ]])
>>> x.reshape(3, 2)
array([[ 0.19399632,  0.33569667],
       [ 0.36343308,  0.7068406 ],
       [ 0.89809989,  0.7316493 ]])

1. .reshape 实现维度的提升

(3, ) (3, 1):前者表示一维数组(无行和列的概念),后者则表示一个特殊的二维数组,也即是一个列向量;

>> x = np.ones(3)
>> x
array([ 1.,  1.,  1.])
>> x.reshape(3, 1)
array([[ 1.],
       [ 1.],
       [ 1.]])
>> x.reshape(1, 3)
array([[ 1.,  1.,  1.]])

2. .reshape.resize

  • reshape:有返回值,所谓有返回值,即不对原始多维数组进行修改;
  • resize:无返回值,所谓有返回值,即会对原始多维数组进行修改;
>> X = np.random.randn(2, 3)
>> X
array([[ 1.23077478, -0.70550605, -0.37017735],
       [-0.61543319,  1.1188644 , -1.05797142]])

>> X.reshape((3, 2))
array([[ 1.23077478, -0.70550605],
       [-0.37017735, -0.61543319],
       [ 1.1188644 , -1.05797142]])

>> X
array([[ 1.23077478, -0.70550605, -0.37017735],
       [-0.61543319,  1.1188644 , -1.05797142]])

>> X.resize((3, 2))
>> X
array([[ 1.23077478, -0.70550605],
       [-0.37017735, -0.61543319],
       [ 1.1188644 , -1.05797142]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值