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

如何从Numpy ndarray随机移除11个样本以调整为(-1,6,10)形状

实现方案

核心思路

原数组共5891个样本,移除11个后剩余5880个,刚好能被6整除(5880 ÷ 6 = 980),所以最终可重塑为(980, 6, 10)的3D数组。具体分三步实现:

  • 生成11个不重复的随机索引,标记要删除的样本
  • 过滤数组,移除标记的样本
  • 将过滤后的2D数组重塑为目标3D形状

完整代码示例

import numpy as np

# 假设原数组为arr,形状(5891, 10)
# 生成11个不重复的随机删除索引
remove_indices = np.random.choice(arr.shape[0], size=11, replace=False)
# 移除指定样本,得到(5880, 10)的数组
filtered_arr = np.delete(arr, remove_indices, axis=0)
# 重塑为3D数组,-1让numpy自动计算第一个维度的长度
final_3d_arr = filtered_arr.reshape(-1, 6, 10)

# 验证最终形状
print(final_3d_arr.shape)  # 输出:(980, 6, 10)

关键细节说明

  • np.random.choice参数replace=False保证不会重复选中同一个样本,避免误删多次;
  • np.delete的axis=0指定沿着样本维度(行方向)删除,确保特征维度(10列)不受影响;
  • reshape(-1,6,10)中-1是占位符,numpy会根据总样本数和后面两个维度的大小自动计算出第一个维度为980。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:40:22