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

如何对NumPy人脸图像数组每50个样本提取前3个样本

解决方法

你可以通过重塑数组结构+切片的方式实现需求,步骤如下:

  1. 先将原数组重塑为按人物分组的结构:把300张图像拆分为6组(对应6个人),每组50张,形状变为(6, 50, 224, 224, 3)。
  2. 对每个人物组取前3张图像:用切片[:, :3, ...]保留每组的前3个元素,此时数组形状变为(6, 3, 224, 224, 3)。
  3. 最后将分组维度合并,重塑为目标形状(18, 224, 224, 3)。

完整代码:

import numpy as np

X = np.random.randint(255, size=(300, 224, 224, 3))
# 执行切片与重塑操作
X_new = X.reshape(6, 50, 224, 224, 3)[:, :3, ...].reshape(18, 224, 224, 3)

# 验证形状
print(X_new.shape)  # 输出 (18, 224, 224, 3)

补充说明

  • reshape(6, 50, 224, 224, 3):利用原数组的连续性,将一维的图像序列按每50个一组拆分,不改变数据顺序。
  • [:, :3, ...]::表示保留所有人物组,:3表示取每组前3张,...表示保留后面所有维度(图像的高、宽、通道),等价于[:, :3, :, :, :]。
  • 最后一次reshape将(6,3)的前两个维度合并为18,还原为一维的图像序列结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:18:26