我使用numpy.random.shuffle
来加扰二进制数组(下面的代码),但输出看起来不是很随机。我期待一个随机的各种各样的点,但结果数组似乎是一个半规则的破折号模式。这是怎么回事?
img = PIL.Image.open(image_path)
array = numpy.array(img)
# threshold image etc
outim=PIL.Image.fromarray(array)
outim.show() # generates left image (below)
numpy.random.shuffle(array)
outim=PIL.Image.fromarray(array)
outim.show() # generates right image (below)
答案 0 :(得分:4)
你已经洗牌但不是列。 numpy.random.shuffle
仅在第一维上重新排序其输入。
要改变整个事情,请尝试
shape = array.shape
array = array.flatten()
numpy.random.shuffle(array)
array = array.reshape(shape)