具体是怎么工作的?
How exactly work?
当我 运行 这个时,代码按预期工作,并给了我 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)
但是如果我将 reshape 的参数更改为 (200, 200),我会收到错误消息:
ValueError: total size of new array must be unchanged
为什么会这样?为什么没有返回 200x200 的图像?
您可以将 10000 点重新整形为 100x100,不能将 10000 点重新整形为 200x200。这是简单的数学。您必须将呼叫更改为
im = np.random.random_integers(0, 255, 40000).reshape((200, 200))
请注意,您现在采样的是 40000 (200*200) 个点,而不是 10000 (100*100) 个
当我 运行 这个时,代码按预期工作,并给了我 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)
但是如果我将 reshape 的参数更改为 (200, 200),我会收到错误消息:
ValueError: total size of new array must be unchanged
为什么会这样?为什么没有返回 200x200 的图像?
您可以将 10000 点重新整形为 100x100,不能将 10000 点重新整形为 200x200。这是简单的数学。您必须将呼叫更改为
im = np.random.random_integers(0, 255, 40000).reshape((200, 200))
请注意,您现在采样的是 40000 (200*200) 个点,而不是 10000 (100*100) 个