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

如何基于索引列表用另一数组为numpy/tensorflow数组赋值?

NumPy 批量索引赋值替代for循环方案

直接用NumPy的数组索引赋值就能替代for循环,这是NumPy原生优化的向量操作,比Python循环高效得多,完全适配批量数据处理场景:

import numpy as np

# 初始化数组
a = np.zeros(24)
b = np.ones(10)
c = [0, 2, 4, 6, 8, 11, 15, 17, 20, 22]

# 核心操作:直接通过索引列表赋值
a[c] = b

# 验证结果
print(a.tolist())
# 输出:[1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0]

原理说明

NumPy支持直接将列表/数组作为索引,对目标数组的指定位置批量赋值。这种操作是在C语言层面执行的,避免了Python循环的开销,处理百万级以上的批量数据时性能提升非常明显。

如果需要处理多组批量数据(比如多个b和对应的c索引组),可以将b和c组织成二维数组,利用NumPy的广播机制实现一次性批量处理,进一步提升效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:22:38