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

Python如何将numpy数组指定列(列号由数组定义)的值替换为0

NumPy 将指定列批量替换为0的实现方法

直接使用NumPy的高级索引即可一步完成需求,无需编写循环遍历,运行效率更高。

核心实现代码

import numpy as np

a = np.array([[  1,   2,   3,   4],
              [  1,   2,   1,   2],
              [  0,   3,   2,   2]])
b = np.array([1,3])

# 选中所有行、b中存储的列索引对应的位置,统一赋值为0
a[:, b] = 0

print(a)

代码说明

  • 切片语法a[:, b]中,第一个位置的:代表选中数组的所有行,第二个位置传入存储列索引的数组b,即可精准选中所有需要替换的列区域
  • 直接对选中的切片区域赋值0,就会把对应位置的所有元素批量替换
  • 如果不希望修改原始数组a,可以先创建副本再操作:
    # 先复制原数组,再替换副本的列,原数组不会被改动
    a_modified = a.copy()
    a_modified[:, b] = 0
    

运行输出

执行代码后得到的结果和预期完全一致:

[[1 0 3 0]
 [1 0 1 0]
 [0 0 2 0]]

注意:NumPy数组的列索引从0开始计数,传入b数组的索引值需要符合这个计数规则,避免替换错列。

内容的提问来源于stack exchange,提问作者r.carnahan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:27:25