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

如何对NumPy数组切片,将相同索引的元素聚合在一起?

NumPy切片实现按索引聚合重排数组元素

先还原你的数组场景,用NumPy代码生成对应数组:

import numpy as np

# 原始item数组
item = np.array([[0, 5], [1, 6], [2, 7], [3, 8], [4, 9]])
# 复制3次得到三维数组arr(shape为(3,5,2))
arr = np.repeat(item[np.newaxis, :, :], 3, axis=0)

要实现按索引聚合a、b元素的需求,直接通过切片+转置就能完成:

# 提取所有a变量并按索引聚合
a = arr[:, :, 0].T
# 提取所有b变量并按索引聚合
b = arr[:, :, 1].T

结果验证

打印a会得到:

array([[0, 0, 0],
       [1, 1, 1],
       [2, 2, 2],
       [3, 3, 3],
       [4, 4, 4]])

打印b会得到:

array([[5, 5, 5],
       [6, 6, 6],
       [7, 7, 7],
       [8, 8, 8],
       [9, 9, 9]])

切片逻辑说明

  • arr[:, :, 0]:冒号:表示取对应维度的所有元素,这里取所有复制批次(3次)、所有原始索引(5个)、第3维度的第0个值(即a变量),得到shape为(3,5)的数组
  • .T:转置操作,把(3,5)的数组转为(5,3),正好将每个原始索引的a元素聚合为一行,完全符合你要的a_0到a_4的结构
  • 处理b变量的逻辑和a完全一致,只是取第3维度的第1个值arr[:, :, 1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 08:45:28