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

如何用简洁索引实现NumPy数组的循环首尾衔接(无需创建列表)

用NumPy组合索引实现数组循环追加首元素

要实现将NumPy数组末尾追加第一个元素形成循环结构,且不手动创建索引列表,这里提供两种简洁的索引方案:

方案一:利用np.r_自动生成组合索引

np.r_是NumPy中用于快速拼接索引或数组的工具,可以将切片和标量索引组合成所需的索引数组,无需手动枚举:

import numpy as np
a = np.asarray([2,4,6])
cycle = a[np.r_[:len(a), 0]]

原理:np.r_[:len(a), 0]会自动生成包含原数组所有索引+首元素索引的数组(比如示例中生成array([0,1,2,0])),通过这个索引数组去取原数组元素,就得到了循环结构的新数组。

方案二:结合np.arange与标量索引

如果不想用np.r_,也可以通过np.arange生成原数组的索引序列,再拼接首元素索引:

cycle = a[np.concatenate([np.arange(len(a)), [0]])]

原理:np.arange(len(a))生成原数组的索引序列([0,1,2]),再通过np.concatenate把首元素索引[0]拼接到末尾,形成完整的索引数组。

这两种方案都不需要手动编写固定长度的索引列表,能适配任意长度的NumPy数组,满足你要求的组合索引类型实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:45:30