You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何np.random.shuffle无法打乱我的NumPy二维数组?

问题原因
  • np.random.shuffle()的作用限制:该函数仅会打乱数组的第一维度(行),但你生成的数组每一行都是[0, 255, 0, 255],所有行内容完全一致,因此打乱行后视觉上无变化。
  • 数组生成逻辑未实现随机:你通过clr_values * 12生成的是严格交替的0,255,0,255,...序列,reshape为(6,4)后每行都是固定模式,完全没有随机分布的0和255。
解决方案

方法1:直接生成随机数组(推荐)

一步生成符合需求的(6,4)随机数组:

import numpy as np
img_random = np.random.choice([0, 255], size=(6, 4))
print(img_random)

方法2:打乱已有数组的所有元素

若需打乱现有一维序列的所有元素后再转为二维:

import numpy as np
clr_values = [0,255]
ifslst = clr_values * 12
img_flat_sorted = np.array(ifslst)
# 打乱一维数组的元素顺序
np.random.shuffle(img_flat_sorted)
# 重塑为二维数组
img_2d_shuffled = img_flat_sorted.reshape((6,4))
print(img_2d_shuffled)

方法3:打乱二维数组的全部元素

也可通过展平后打乱再重塑的方式,直接打乱二维数组的所有元素:

img_2d_shuffled = np.random.permutation(img_flat_sorted).reshape((6,4))

内容的提问来源于stack exchange,提问作者Ian Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 04:53:12