gpt4 book ai didi

python - 如何填充 numpy 数组而不填充角落?

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:51 25 4
gpt4 key购买 nike

我想用如下所示的常量值填充数组(实际上是一个 3D 数组,但为了简洁起见,我在此处显示了一个 2D 示例):

[[1,1,1],
[1,1,1],
[1,1,1]]

应该变成

[[0,1,1,1,0],
[1,1,1,1,1],
[1,1,1,1,1],
[1,1,1,1,1],
[0,1,1,1,0]]

现在 numpy.pad 将填充角落(在 3D 中也填充边缘),这不是我想要的。我可以“手动”将它们设置为零,但这会变得乏味,尤其是在例如3D

有没有一种简短而方便的方法来做到这一点?

编辑为了让3D案例更加清晰,下面是一个例子:

[[[1]]]

应该变成

[[[0,0,0],
[0,c,0],
[0,0,0]],

[[0,c,0],
[c,1,c],
[0,c,0]],

[[0,0,0],
[0,c,0],
[0,0,0]]]

对于填充厚度为 2 的示例将显示为:

[[[0,0,0,0,0],
[0,0,0,0,0],
[0,0,c,0,0],
[0,0,0,0,0],
[0,0,0,0,0]],

[[0,0,0,0,0],
[0,0,0,0,0],
[0,0,c,0,0],
[0,0,0,0,0],
[0,0,0,0,0]],

[[0,0,c,0,0],
[0,0,c,0,0],
[c,c,1,c,c],
[0,0,c,0,0],
[0,0,c,0,0]],

[[0,0,0,0,0],
[0,0,0,0,0],
[0,0,c,0,0],
[0,0,0,0,0],
[0,0,0,0,0]],

[[0,0,0,0,0],
[0,0,0,0,0],
[0,0,c,0,0],
[0,0,0,0,0],
[0,0,0,0,0]]]

最佳答案

我认为这个问题实际上可以通过 numpy.pad 函数很容易地解决。

根据 numpy.pad 函数文档,函数的可能参数之一可以是 mode :str 或 function以下字符串值之一或用户提供的函数(来源:https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.pad.html)。

这意味着您需要做的就是传递一个函数来检查这是否是一个角,如果是,则将值设置为 0,否则设置为 1。可以通过对您的 3D 情况进行一些修改来完成curse的操作.

希望有帮助

关于python - 如何填充 numpy 数组而不填充角落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46040277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com