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

Python更新多维NumPy数组仅修改右列并保留左列的实现方法

NumPy数组单列修改问题解决

你原有代码的问题在于:indx = indx[:,1] + number 这行直接把原本的二维数组变量重新赋值为右列计算后得到的一维数组,直接覆盖了原有数组的左列内容,因此输出只有一维的右列计算结果。

修正方案

直接对右列切片做原位运算即可,不需要重新赋值整个数组:

import numpy as np

number = 3
indx=np.array([[    0,     1],
 [    1,   765],
 [    0,  4355],
 [    1,  9364],
 [    0, 12110],
 [    1, 15233],
 [    0, 16246],
 [    1, 18889]])
# 仅对第二列(索引为1)做加法,左列内容保持不变
indx[:,1] += number
print(indx)

运行后输出和你预期的结果完全一致:

[[    0     4]
 [    1   768]
 [    0  4358]
 [    1  9367]
 [    0 12113]
 [    1 15236]
 [    0 16249]
 [    1 18892]]

如果你需要保留原始数组不被修改,可以先拷贝数组再操作:

new_indx = indx.copy()
new_indx[:,1] += number

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:51:03