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

如何仅反转NumPy二维数组的第二列?

如何仅反转NumPy数组的指定列?

问题描述

我有一个3行2列的NumPy数组:

np.array([[93,  95], [84, 100], [99,  87]])

希望仅反转该数组的第二列,得到目标数组:

np.array([[93,  87], [84, 100], [99,  95]])

我尝试了以下代码:

grades = np.array([[93,  95], [84, 100], [99,  87]])
print(grades[::-1,:])

但得到的结果是:

[[ 99  87]
 [ 84 100]
 [ 93  95]]

我知道这是因为该代码反转了整个行轴的所有元素,导致第一列也被反转,请问应该编写什么代码来得到目标数组?

解决方案

要仅反转指定列,你需要单独选中目标列,反转后重新赋值回去。代码如下:

import numpy as np

grades = np.array([[93,  95], [84, 100], [99,  87]])
# 复制原数组避免修改原始数据(可选,若不需要保留原数组可省略)
target_grades = grades.copy()
# 选中第二列(索引为1),反转后赋值
target_grades[:, 1] = target_grades[:, 1][::-1]

print(target_grades)

执行后输出结果:

[[ 93  87]
 [ 84 100]
 [ 99  95]]

说明

  • grades[:, 1] 表示选中数组中所有行的第二列(NumPy采用0-based索引,所以第二列对应索引1)。
  • [::-1] 用于反转该列的元素顺序。
  • 如果你不需要保留原始数组,也可以直接在原数组上修改:grades[:, 1] = grades[:, 1][::-1]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:31:35