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

如何对shape为(10296,6)的2D array交换每个子数组的最后两个元素

实现方法

根据你使用的数据结构不同,有两种常用实现方式:

如果你用的是NumPy数组(你提到了shape属性,大概率是该场景)

直接用NumPy高级索引即可完成批量交换,无需循环,执行效率最高:

import numpy as np

# a为你原始的shape=(10296, 6)的数组
# 注:NumPy索引从0开始,第5位对应索引4,第6位对应索引5
a[:, [4, 5]] = a[:, [5, 4]]

以上操作为原地修改,不需要额外占用内存空间。

如果你用的是原生Python二维列表

遍历每个子数组交换最后两位即可:

for sub_list in a:
    # 直接交换倒数第一位和倒数第二位元素
    sub_list[-1], sub_list[-2] = sub_list[-2], sub_list[-1]

该方法同样为原地修改,应对1万+的数据量性能完全足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:54:03