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

如何将NumPy数组大致等分后添加额外值再合并?

解决NumPy数组分割后插入额外值的问题

看起来你想要把NumPy数组分割成大致均等的块,然后在除最后一块外的每块末尾插入指定额外值,最终拼接成目标数组。我来给你一步步实现这个需求:

步骤1:定义原始数据和参数

首先导入NumPy,创建你的原始数组和要插入的额外值:

import numpy as np

# 原始数组
original_arr = np.array([0., 2.25, 4., 4., 4., 4., 4., 4., 4., 2.25])
# 要插入的额外值
extra_value = 8.

步骤2:分割数组

从你的预期结果来看,需要把数组分成4个大致均等的块(因为插入了3个8.,块数=插入次数+1)。用np.array_split可以自动处理不均等分割的情况:

# 分割成4个大致均等的块
split_chunks = np.array_split(original_arr, 4)

这里10个元素会被分成[3,3,2,2]长度的块,正好匹配你预期的分割逻辑。

步骤3:处理每个块并拼接

遍历分割后的块,给除最后一块外的每个块末尾添加额外值,最后合并所有块:

processed_chunks = []
for idx, chunk in enumerate(split_chunks):
    if idx != len(split_chunks) - 1:
        # 非最后一块:拼接当前块和额外值
        modified_chunk = np.concatenate([chunk, [extra_value]])
    else:
        # 最后一块:保持原样
        modified_chunk = chunk
    processed_chunks.append(modified_chunk)

# 合并所有处理后的块得到最终结果
final_result = np.concatenate(processed_chunks)

验证结果

打印最终结果,和你的预期完全一致:

print(final_result)
# 输出:[0.   2.25 4.   8.   4.   4.   4.   8.   4.   4.   8.   4.   2.25]

灵活调整

如果需要改变分割的块数,只需要修改np.array_split的第二个参数即可:

  • 比如分成3块,就用np.array_split(original_arr, 3),这时候会插入2个8.
  • 如果需要转成Python列表,只需要调用final_result.tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:08:39