a=b.reshape(-1,36,1)报错cannot reshape array of size 39000 into shape(36,1)
时间: 2023-09-12 12:04:54 浏览: 95
详解numpy.reshape中参数newshape出现-1的含义
### 回答1:
这个错误是说,数组的大小是39000,但是你试图将它转换成大小为(36,1)的数组。这是不可能的,因为这两个数组的大小不同。
在这种情况下,你可能需要更改数组的形状,使其大小为39000/(36*1) = 1080,或者你可能需要更改目标形状,使其与原始数组的大小匹配。
例如,如果你想将数组转换为大小为(1080,36,1)的数组,你可以使用 a = b.reshape(1080,36,1)。或者,如果你想将数组转换为大小为(39000,1)的数组,你可以使用 a = b.reshape(39000,1)。
希望这能帮到你!如果你有更多问题,请随时告诉我。
### 回答2:
这个错误发生是因为在使用numpy中的reshape()函数时,尝试将一个大小为39000的数组重新形状为(36,1)。无法将一个大小为39000的数组重新调整为(36,1),因为数组的总大小发生了改变。原始数组包含了39000个元素,而目标形状(36,1)包含了36个元素。这两个大小不相等,所以无法进行形状调整。
要解决这个问题,可以考虑重新确定要调整的形状。根据原始数组的大小和目标形状的大小,确定是否可能实现调整形状。在这种情况下,如果原始数组具有39000个元素,你可以使用reshape()函数来将其调整为(1000, 39)的形状。
另外,也可以根据具体的需求来调整形状,如果需要将原始数组调整为(36,1)的形状,那么首先需要明确数组的总大小是否支持这种调整。如果数组的大小是36的倍数,那么可以将其重新调整为(36,1)的形状,否则将调整为其他的形状。
总结而言,不能将39000个元素的数组调整为(36,1)的形状,因为两者的大小不匹配。要解决这个问题,可以重新确定调整的形状,使得数组的大小和目标形状的大小相匹配。
阅读全文