【问题标题】:How to pad arrays by a variable amount?如何按可变数量填充数组?
【发布时间】:2018-09-03 19:22:24
【问题描述】:

我正在尝试使多个 PNG 文件大小相同。我不想更改图像,只需在所有图像周围添加边框,直到它们都与最大的 PNG 文件大小相同。 语言是 Python。

这是大量文件,所以我无法手动执行此操作。我正在使用 for 循环。我已经知道最大尺寸是多少:(100, 441)。 maxImage 表示这一点。 images 是我的数组的名称。

for n in range(0, len(images - 1)):
    stat_length = maxImage - len(images[n])
    hello = py.pad(images[n], 1, 'constant')
    print (hello[n].shape)

这是我的代码。我想知道如何填充可变数量。

【问题讨论】:

    标签: python arrays padding


    【解决方案1】:

    这对我有用

    import numpy as np
    a = [[1, 2, 3, 4, 5],[6,7,8,9,10]]
    p = np.shape(a)
    max_h = 100 
    max_w = 441
    pad_h = (max_h-p[0])//2
    pad_w = (max_w-p[1])//2 
    print(np.pad(a,((pad_h,pad_h),(pad_w,pad_w)),'constant', constant_values=(0)))
    

    【讨论】:

    • 您好,谢谢您的回复。它提供了一些我以前没有想过使用的东西,那就是元组。不幸的是,我收到错误消息:TypeError:pad_width 必须是整数类型。编辑:我将 pad_h 更改为 (max_h - p[0])//2 (和 pad_w),它现在可以正常工作了!感谢您的帮助。
    • 太棒了:修改了响应以保证int。你能批准答案吗?
    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多