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

如何给形状为(x,6)、(x,8)的np.ndarray补零转换为(x,10)、(x,20)格式

Numpy数组补零调整维度实现方案

你可以直接用numpy内置的np.pad方法实现指定维度的补零,两种常见需求的实现方式如下:

对应需求实现

需求1:形状为(x,6)的数组转换为(x,10)

每行末尾需要补4个零,代码如下:

import numpy as np

# 示例原数组
arr = np.array([[0.10509943, 0.10455629, 0.12834423, 0.11941818, 0.18575186, 0.09807488],
       [0.10077468, 0.10279433, 0.11094123, 0.13126894, 0.17131188, 0.15274959],
       [0.18001982, 0.12355641, 0.12962402, 0.08898308, 0.13519354, 0.10686492],
       [0.23227005, 0.12867459, 0.09090935, 0.10579092, 0.11778245, 0.10694417],
       [0.08339332, 0.10951406, 0.08742057, 0.11066605, 0.15075919, 0.21791006],
       [0.10345669, 0.11221684, 0.13799778, 0.13666848, 0.15356763, 0.10952609]])

# 补零操作:行维度不填充,列维度末尾补4个0
res = np.pad(arr, pad_width=((0, 0), (0, 4)), mode='constant', constant_values=0)

# 输出第一行验证结果
print(res[0])
# 输出:[0.10509943 0.10455629 0.12834423 0.11941818 0.18575186 0.09807488 0. 0. 0. 0.]

参数说明:

  • pad_width接收两个元组,分别对应两个维度的填充规则:第一个元组控制行维度的上方、下方填充数量,这里不需要调整行数所以填(0,0);第二个元组控制列维度的左侧、右侧填充数量,我们只需要在末尾补零所以填(0,4)
  • mode='constant'指定填充固定值,constant_values=0指定填充值为0

需求2:形状为(x,8)的预测结果调整为(x,20)

每行末尾需要补12个零,只需要修改pad的列填充数量即可:

# 假设pred是形状为(x,8)的预测结果
pred = np.random.rand(5, 8)
res = np.pad(pred, pad_width=((0, 0), (0, 12)), mode='constant', constant_values=0)
print(res.shape) # 输出(5, 20)

替代方案:用concatenate拼接全零数组

如果你更习惯数组拼接的写法,也可以生成对应形状的全零数组和原数组拼接:

# 需求1的拼接实现
res = np.concatenate([arr, np.zeros((arr.shape[0], 4))], axis=1)

# 需求2的拼接实现
res = np.concatenate([pred, np.zeros((pred.shape[0], 12))], axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:45:03