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

如何将多个NumPy子数组合并为一个大数组?

问题描述

我有如下的NumPy数组列表:

array = [array([100000. , 100848.06652142, 99648.67144694, 102047.67944271, 103655.99048427, 104602.87678005, 104597.83419837, 103505.42736768, 104976.01311214, 104457.34603404, 105855.46549162, 105613.30235519, 105212.71840922, 107647.5054673 ]) array([107647.5054673 , 106891.82007643, 106979.91405552, 106030.74186486, 107856.04281712, 108502.71948581, 106557.2401056 , 105659.59829843, 105663.01875745, 107300.69453018, 106336.34733019, 107584.99034227, 108089.2320392 , 106786.91702337]) array([106786.91702337, 104416.74000465, 101289.12525402, 101932.58219813, 102625.04352578, 101767.46209616, 103345.4263012 , 102816.73322055, 102417.59316407, 104439.37518975, 103755.22627215, 103817.9744686 , 107872.40234863, 108110.9662065 ]) array([108110.9662065 , 109544.86827069, 111072.22392645, 112618.46235766, 113847.1768898 , 116708.86391903, 115790.02599715, 115614.72242411, 119225.88436354, 121991.38468934, 123304.85972848, 125571.38040251, 122456.3667249 ]) array([122456.3667249 , 127497.74699282, 128659.85495604, 125813.77115906, 129008.46450085, 128111.00914756, 123039.92607546, 124723.87932757, 124181.57385836, 125134.9276196 , 126027.8631434 , 129304.85119148, 128912.58600657])]

我尝试用np.concatenate()把这些子数组合并成一个大数组,但没有成功,请问最佳方法是什么?


解决方案

你遇到的问题根源在于数组列表里的子数组之间缺少逗号,这会导致Python无法正确识别这是一个包含多个元素的列表,自然也就没法用np.concatenate()处理。

只要给每个子数组之间加上逗号,修复后的列表结构是这样的:

import numpy as np

# 修复后的数组列表
array_list = [
    np.array([100000. , 100848.06652142, 99648.67144694, 102047.67944271, 103655.99048427, 104602.87678005, 104597.83419837, 103505.42736768, 104976.01311214, 104457.34603404, 105855.46549162, 105613.30235519, 105212.71840922, 107647.5054673 ]),
    np.array([107647.5054673 , 106891.82007643, 106979.91405552, 106030.74186486, 107856.04281712, 108502.71948581, 106557.2401056 , 105659.59829843, 105663.01875745, 107300.69453018, 106336.34733019, 107584.99034227, 108089.2320392 , 106786.91702337]),
    np.array([106786.91702337, 104416.74000465, 101289.12525402, 101932.58219813, 102625.04352578, 101767.46209616, 103345.4263012 , 102816.73322055, 102417.59316407, 104439.37518975, 103755.22627215, 103817.9744686 , 107872.40234863, 108110.9662065 ]),
    np.array([108110.9662065 , 109544.86827069, 111072.22392645, 112618.46235766, 113847.1768898 , 116708.86391903, 115790.02599715, 115614.72242411, 119225.88436354, 121991.38468934, 123304.85972848, 125571.38040251, 122456.3667249 ]),
    np.array([122456.3667249 , 127497.74699282, 128659.85495604, 125813.77115906, 129008.46450085, 128111.00914756, 123039.92607546, 124723.87932757, 124181.57385836, 125134.9276196 , 126027.8631434 , 129304.85119148, 128912.58600657])
]

之后直接调用np.concatenate()就能顺利合并成一个大数组了:

merged_array = np.concatenate(array_list)
print(merged_array)

np.concatenate()会沿着默认的轴(axis=0)把所有子数组按顺序拼接起来,这正是合并一维NumPy数组的最佳方法。

内容的提问来源于stack exchange,提问作者lee.edward01

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:38:38