You need to enable JavaScript to run this app. Numpy如何基于指定索引将数组部分内容替换为另一完整数组
优惠活动
大模型
产品
解决方案
定价
更多

Numpy如何基于指定索引将数组部分内容替换为另一完整数组

解决方案

直接使用Numpy的花式索引特性,一行代码即可完成赋值,完全避免Python层的循环,底层由C实现,处理大数组时效率远高于你现有的循环写法:

A[index_list] = B

原理说明

Numpy支持将整数列表作为数组索引,传入A[index_list]时会按index_list的顺序依次选取A的axis=0维度对应位置的子数组,刚好和B的axis=0维度的元素顺序一一对应,赋值时会自动对齐后续维度的形状,完全符合你的需求。

完整验证代码

import numpy as np

# 初始化数组
A = np.arange(12).reshape(3,2,2)
B = np.array([
    [[10, 10], [10, 10]],
    [[20, 20], [20, 20]]
])
index_list = [0,2]

# 执行赋值
A[index_list] = B

# 打印结果
print(A)

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

array([[[10, 10],
        [10, 10]],

       [[ 4,  5],
        [ 6,  7]],

       [[20, 20],
        [20, 20]]])

注意事项

需要保证index_list的长度和B的第0维长度完全一致,否则会触发形状不匹配的报错,这和你原有逻辑的前提条件一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:51:03