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

如何从1D数组与3D数组生成2D数组?适配pr尺寸变化方案

更优的自动化实现方式

你可以利用numpy的np.repeat函数实现完全自动化的逻辑,无需随pr的尺寸变化修改代码,核心思路是自动计算每个pr元素需要重复的次数,再批量生成重复后的数组:

import numpy as np

pr = np.array([100, 50, 20]).reshape(-1,1)
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [9, 10, 11]], [[12, 13, 14], [15, 16, 17]]])

# 自动计算每个pr元素需要重复的次数:对应arr每个第一维度子块展平后的元素总数
repeat_count = arr.shape[1] * arr.shape[2]
# 批量重复pr中的每个元素对应次数
p_arr = np.repeat(pr, repeat_count, axis=0)
# 展平3D数组并转为列向量
arr_flat = arr.flatten().reshape(-1, 1)
# 横向拼接得到最终2D数组
data = np.hstack((p_arr, arr_flat))

逻辑说明

  • repeat_count通过arr的后两个维度乘积自动计算,无需手动指定重复次数;
  • np.repeat(pr, repeat_count, axis=0)会遍历pr的所有元素,每个元素重复repeat_count次,不管pr的长度是2、3还是更多,都能自动适配;
  • 最终效果和你手动实现的完全一致,但扩展性更强,无需修改代码即可适配pr尺寸变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:37:18