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

如何为numpy数组各侧填充0?附二维numpy数组示例

嘿,这两个问题用NumPy的np.pad()函数就能完美解决,我给你拆解清楚:

1. 如何在所有侧为numpy数组填充0?

不管你的数组是一维、二维还是更高维,np.pad()都能帮你给所有侧统一填充0。核心是设置pad_width参数:

  • 如果是一维数组,比如arr = np.array([1,2,3]),想给左右各填2个0,直接写:
    import numpy as np
    arr = np.array([1,2,3])
    padded_arr = np.pad(arr, pad_width=2, mode='constant', constant_values=0)
    # 结果:array([0, 0, 1, 2, 3, 0, 0])
    
  • 如果是多维数组,想给所有维度的前后都填充相同数量的0,比如给三维数组所有侧填1层0,pad_width=1就可以,函数会自动适配每个维度。
2. 如何在四个侧为二维numpy数组填充0?

针对你给出的示例数组a = np.array([(1, 2, 3),(4, 5, 6)]),我们可以精准控制上下左右的填充数量:
先看原数组:

import numpy as np
a = np.array([(1, 2, 3),(4, 5, 6)])
print(a)
# 输出:
# [[1 2 3]
#  [4 5 6]]

如果想给上下各填1行0,左右各填1列0,代码如下:

padded_a = np.pad(a, pad_width=((1,1), (1,1)), mode='constant', constant_values=0)
print(padded_a)
# 结果:
# [[0 0 0 0 0]
#  [0 1 2 3 0]
#  [0 4 5 6 0]
#  [0 0 0 0 0]]

参数解释:

  • pad_width=((1,1), (1,1)):第一个元组(1,1)代表行维度(上下),前面填1行,后面填1行;第二个元组(1,1)代表列维度(左右),前面填1列,后面填1列。
  • mode='constant':表示填充固定值,这里我们指定constant_values=0,就是填充0。

要是你只想填充某几个侧,比如只填上面1行和右边1列,只需要把pad_width改成((1,0), (0,1))就行,非常灵活!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:59:28