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

如何将一维NumPy数组的元素重复N次生成指定二维数组?

实现一维数组转每个元素重复N列的二维数组

这其实是个挺常见的数组变形需求,咱分两种场景给你说具体实现方式:

1. 如果你用的是普通Python列表

假设你的原始数组是普通列表,N是你想要重复的列数,直接用列表推导式就能搞定,简洁又直观:

# 原始一维数组
original_arr = [9.975, 9.976, 9.977, 9.978, 9.979, 9.98, 9.981, 9.982, 9.983, 9.984, 9.985, 9.986, 9.987, 9.988, 9.989, 9.99, 9.991, 9.992, 9.993, 9.994]
# 要重复的列数
N = 3
# 生成目标二维数组
result_arr = [[num] * N for num in original_arr]

原理很简单:[num] * N会把单个元素复制N次生成一个子列表,外层的列表推导式遍历原始数组的每一个元素,把每个元素对应的子列表收集起来,就是你要的二维数组。

2. 如果你用的是NumPy数组(看你给出的格式很像)

如果是处理NumPy数组,用NumPy自带的方法会更高效,尤其是数组规模比较大的时候,给你两种常用方法:

方法一:用repeat + reshape

import numpy as np

# 原始NumPy一维数组
original_np_arr = np.array([9.975, 9.976, 9.977, 9.978, 9.979, 9.98, 9.981, 9.982, 9.983, 9.984, 9.985, 9.986, 9.987, 9.988, 9.989, 9.99, 9.991, 9.992, 9.993, 9.994])
N = 3

# 先把每个元素重复N次,再重塑成每行N个元素的二维数组
result_np_arr = original_np_arr.repeat(N).reshape(-1, N)

方法二:用tile + 维度扩展

import numpy as np

original_np_arr = np.array([9.975, 9.976, 9.977, 9.978, 9.979, 9.98, 9.981, 9.982, 9.983, 9.984, 9.985, 9.986, 9.987, 9.988, 9.989, 9.99, 9.991, 9.992, 9.993, 9.994])
N = 3

# 先把一维数组转成列向量,再在列方向上重复N次
result_np_arr = np.tile(original_np_arr[:, np.newaxis], (1, N))

这两种方法都能快速得到你想要的二维数组,其中reshape(-1, N)里的-1表示让NumPy自动计算行数,不用手动算,非常方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:51:57