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

如何随机打乱数组行索引?数组形状为(100,784)、float类型

仅打乱数组行索引的解决方案

没问题!针对你需要打乱(100,784)形状float数组的行索引、同时完全保留列顺序的需求,我给你两个最常用的Python实现方案(默认你用的是numpy数组,这类多维数组场景下numpy是最常用的工具):

方法1:生成随机索引后重新索引(非原地修改)

这种方法会生成一个新的打乱后数组,原数组保持不变,适合需要保留原数据的场景:

  • 先生成一组包含所有行索引的随机排列序列
  • 用这个序列对原数组的行进行索引,即可得到行打乱、列完全不变的新数组
import numpy as np

# 模拟你的(100,784) float数组
your_array = np.random.rand(100, 784).astype(np.float32)

# 生成0到99的随机排列索引
shuffled_row_indices = np.random.permutation(your_array.shape[0])
# 打乱行,列顺序完全保留
shuffled_array = your_array[shuffled_row_indices]

方法2:原地打乱行索引(节省内存)

如果不需要保留原数组,可以用np.random.shuffle直接在原数组上修改,它默认会对数组的第一维度(也就是行)进行打乱操作,列不会受到任何影响:

import numpy as np

your_array = np.random.rand(100, 784).astype(np.float32)

# 直接原地打乱行索引,列顺序不变
np.random.shuffle(your_array)

关键说明

这两种方法都只会改变行的排列顺序,每一行内部的784个列元素的顺序和数值完全不会被修改,完全符合你的要求。如果是Pandas DataFrame的话,也可以用df.sample(frac=1, random_state=your_seed)实现类似效果,但纯numpy数组场景下上面的方法更高效。

内容的提问来源于stack exchange,提问作者Insung Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 09:22:49