python reshape()函数ValueError: total size of new array must be unchanged

之前遇到这样的小问题,记得我之前是将图像转换为数组的形式存储,之后处理需要转换为二维的数组,大概就是这样。这里就不还原了,我用个简单的小例子阐述下.就是使用a.reshape()来改变数组的形状,创建一个1维数组,将其转换为2维数组,出现了个错误:

既然遇到了这个问题,就来学习一下这个函数。首先看看报错信息: total size of new array must be unchanged新的数组大小必须不能够被改变,就是数组的元素个数不能变,之前的8个元素,在你的维度改变之后,元素个数还应该是原来的数目。

a.reshape(x,y).这里我们可以把其中的x,y看做是两个轴,大家可以就按我标记的记,x代表横向(也就是行),y代表纵向(也就是列).这里比如说你想把它变作2行,总元素8个,那么列的元素个数自然就是4(2*4=8).

这里有的人会想到,如果将一个880*800的成2维,那难道还要拿出计算机么,答案是不用,reshape(x,y)函数中,x、y参数,将其中的任意一个值用 -1 替换,此时它将自动计算此轴的长度。看看下面的大家就明白了:

1

OK,差不多就是这样,最后可以看到,其实它还是可以转换成高维的,至于怎么计算元素个数,大家可以自己动敲一敲,很快就理解了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值