当我运行它时,代码按预期工作,并给我10个尺寸为100x100的图像:
import numpy as np
for i in range(10):
im = np.random.random_integers(0, 255, 10000).reshape((100, 100))
misc.imsave('random_%03d.png' % i, im)
但如果我将参数更改为重塑为(200,200),我会收到一个错误:
ValueError: total size of new array must be unchanged
为什么会这样?为什么没有200x200图像返回?
答案 0 :(得分:3)
您可以将10000点重塑为100x100,不能将10000点重塑为200x200。这是简单的数学。您必须将通话更改为
im = np.random.random_integers(0, 255, 40000).reshape((200, 200))
请注意,您现在正在采样40000(200 * 200)点而不是10000(100 * 100)