如何沿第一维度对形状为(2000,60,5)的三维数组随机采样得到(500,60,5)?
沿数组第一维度随机采样的实现方法
假设你使用的是NumPy数组,以下提供两种常见的随机采样方案:
1. 无放回随机采样(采样帧不重复)
这种方式会从2000帧中随机挑选500个不重复的帧,最终得到形状为(500,60,5)的数组:
import numpy as np # 假设x是形状为(2000,60,5)的NumPy数组 # 生成500个不重复的随机索引,范围覆盖第一维度的所有帧(0到1999) random_indices = np.random.choice(2000, size=500, replace=False) # 根据索引提取采样后的数组 sampled_x = x[random_indices]
2. 有放回随机采样(采样帧可重复)
如果允许重复选取同一帧,只需将replace参数设为True:
random_indices = np.random.choice(2000, size=500, replace=True) sampled_x = x[random_indices]
补充说明
np.random.choice的第一个参数是采样范围(对应第一维度的总长度2000),size指定采样数量(500)。- 采样后的数组会自动保留原数组后两个维度的结构,最终维度即为
(500,60,5)。
内容的提问来源于stack exchange,提问作者user297850
相关产品推荐
相关产品推荐

