Python numpy random.shuffle的意外结果
我正在使用numpy.random.shuffle对下面的二进制数组代码进行置乱,但输出看起来不是很随机。我期望随机排列的点,但最终的数组似乎是一个半规则的破折号图案。这是怎么回事Python numpy random.shuffle的意外结果,python,numpy,Python,Numpy,我正在使用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
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)
您已洗牌行,但未洗牌列。仅沿第一个维度重新排列其输入 要洗牌整个东西,请尝试
shape = array.shape
array = array.flatten()
numpy.random.shuffle(array)
array = array.reshape(shape)
您已洗牌行,但未洗牌列。仅沿第一个维度重新排列其输入 要洗牌整个东西,请尝试
shape = array.shape
array = array.flatten()
numpy.random.shuffle(array)
array = array.reshape(shape)
洗牌后你不需要重塑它吗?嗯。。谢谢你的建议,但是,Flatte似乎没有移动anything@ElConfuso展平不洗牌任何东西,它只是将数组重塑为一维数组。洗牌后不需要重塑它吗?嗯。。谢谢你的建议,但是,Flatte似乎没有移动anything@ElConfuso展平不洗牌任何东西,它只是将数组重塑为一维数组。