np.resize()和np.reshape()的区别

本文探讨了numpy库中resize函数的动态调整维度功能,与reshape函数的区别,以及在处理不同维度需求时的行为。通过实例展示了resize在元素增删和目标维度不符时的处理方式,同时强调了reshape在目标形状明确时的使用。
摘要由CSDN通过智能技术生成

np.resize() 和 np.reshape()

1、当存在某个参数为 -1 时,

import numpy as np
a = np.arange(12)
b = np.resize(a,(-1,6))#自动推导缺省的维度数目并减去1
print("b shape: ",b.shape)
print(b)
c = a.reshape(-1,6)#自动推导缺省的维度数目
print("c shape: ",c.shape)
print(c)

输出

b shape:  (1, 6)
[[0 1 2 3 4 5]]
c shape:  (2, 6)
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]

2、当目标维度元素个数与原数组元素个数不同时
np.reshape() 将报错

ValueError: cannot reshape array of size 12 into shape (2,5)

而 np.resize() 将采取 少补多删 的方式处理

import numpy as np
a = np.arange(12)
b = np.resize(a,(2,6))
print("b:\n",b)
c = np.resize(a,(2,5))
print("c:\n",c)
d = np.resize(a,(2,7))
print("d:\n",d)

输出

b:
 [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
c:
 [[0 1 2 3 4]
 [5 6 7 8 9]]
d:
 [[ 0  1  2  3  4  5  6]
 [ 7  8  9 10 11  0  1]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值