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

如何用Numpy快速生成首尾唯一、其余元素重复两次的特定数列?

更高效的数列实现方式

你的原代码逻辑正确,但存在更直接高效的实现方案,以下是两种实用思路:

方法一:直接索引赋值(内存&性能最优)

这种方式无需额外创建多个中间数组,直接在目标数组上完成赋值,内存开销最小,执行速度最快:

import numpy as np

last = 35
sequence = np.empty(2 * last, dtype=int)
sequence[::2] = np.arange(last)       # 偶数索引位置填充0到last-1
sequence[1::2] = np.arange(1, last+1) # 奇数索引位置填充1到last
print(sequence)

方法二:repeat拼接(代码更简洁直观)

通过对中间元素重复两次,再拼接首尾的单个元素,写法清晰易懂:

import numpy as np

last = 35
sequence = np.concatenate([
    [0],
    np.repeat(np.arange(1, last), 2),
    [last]
])
print(sequence)

方案对比

  • 原代码需要生成两个长度为last的数组,再堆叠成二维数组后展开,内存占用约为目标数组的2倍。
  • 方法一仅创建一个目标数组,直接完成赋值操作,内存使用率最优,大数值场景下性能优势明显。
  • 方法二写法简洁,但会生成中间重复数组,内存开销略高于方法一,但仍优于原代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:01:08