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

Python中如何高效批量修改NumPy数组的指定索引元素?

高效修改NumPy数组指定索引元素的方法

当然有更高效的实现方式!NumPy的**花式索引(Fancy Indexing)**特性可以帮你一次性完成批量元素修改,不管是代码简洁度还是执行效率,都比逐个赋值要好很多。

实现代码

import numpy as np

# 初始化数组
arr = np.ones(shape=10, dtype=np.int64)
# 批量修改指定索引的元素
arr[[2, 3, 6, 7]] = [5, 5, 2, 2]
print(arr)

输出结果

[1 1 5 5 1 1 2 2 1 1]

为什么这更高效?

  • 相比逐个执行arr[2] = 5、arr[3] = 5这类单元素赋值,批量索引赋值是矢量化操作,它把修改逻辑放到NumPy的底层C代码中执行,避免了Python层面的循环开销,在元素数量较多时速度优势会非常明显。
  • 代码更简洁,一眼就能看出哪些索引的元素被修改成了什么值,可读性更强。

需要注意的是,索引列表和值列表的长度必须匹配,否则NumPy会触发广播机制(如果符合广播规则)或者直接报错,这里你的索引和值数量都是4,刚好完美匹配,所以直接用这种方式就没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 03:23:09