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

Numpy如何将形如:,:width,:的索引标识存储到变量中

实现方法

完全可以实现,Python中数组的下标索引本质是传入一个元组,你可以把切片对象预先存入元组变量后再统一使用:

  • 单个冒号:对应内置的slice(None)对象
  • :width形式的切片对应slice(None, width)对象

对应你的需求的实现代码如下:

# 按条件生成索引元组
if case1:
    if ncomp == 1:
        indices_vec = (slice(None), slice(None, width), slice(None))
    else:
        indices_vec = (slice(None), slice(None, width), slice(None), slice(None))
elif case2:
    if ncomp == 1:
        indices_vec = (slice(None), slice(None, width))
    else:
        indices_vec = (slice(None), slice(None, width), slice(None))

# 统一执行赋值操作
A[indices_vec] = B[indices_vec]

如果想要简化写法,可以提前定义通用全切片变量减少重复代码:

s = slice(None) # 等价于单个冒号:

if case1:
    indices_vec = (s, slice(None, width), s) if ncomp == 1 else (s, slice(None, width), s, s)
elif case2:
    indices_vec = (s, slice(None, width)) if ncomp == 1 else (s, slice(None, width), s)

A[indices_vec] = B[indices_vec]

该写法对Numpy多维数组、Python原生多维列表都可正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:12:03