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

如何将一维ndarray转换为含元素连续递增序列的二维ndarray

解决方法

你可以利用Numpy的广播机制快速生成目标二维数组,具体实现步骤如下:

完整代码示例

import numpy as np

# 你的原始数组
idxs = np.array([1, 2, 7, 8, 5, 9, 3, 4, 6, 0])
# 将一维数组转为列向量
idxs_col = idxs.reshape(-1, 1)
# 生成0到4的步长数组,对应每个元素需要递增的次数
steps = np.arange(5)
# 利用广播完成元素级相加,直接得到目标二维数组
result = idxs_col + steps

print(result)

输出结果

array([[ 1,  2,  3,  4,  5],
       [ 2,  3,  4,  5,  6],
       [ 7,  8,  9, 10, 11],
       [ 8,  9, 10, 11, 12],
       [ 5,  6,  7,  8,  9],
       [ 9, 10, 11, 12, 13],
       [ 3,  4,  5,  6,  7],
       [ 4,  5,  6,  7,  8],
       [ 6,  7,  8,  9, 10],
       [ 0,  1,  2,  3,  4]])

核心原理

Numpy的广播规则会自动处理形状兼容的数组运算:

  • idxs_col形状为(10,1),steps形状为(5,)
  • 广播会将steps扩展为(1,5),再将两个数组统一扩展为(10,5)的形状,随后逐元素相加,恰好生成每个原始元素后续4个递增元素的序列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:07:12