我正在使用np.pad来填充4d数组
a = np.zeros((2,2,2,2))
a = a+7
apad = np.pad(a,((0,0),(0,0),(1,1),(1,1)),'constant')它用零号行和列来填充每个2d数组,我不知道这个np.pad是如何工作的,特别是函数的第二个参数,我也尝试用简单的数组来理解它,这一点也不清楚。
a = np.arange(20)
a = np.reshape(a,(4,5))
a = np.pad(a,((1,0)),'constant')
print(a)
>>>[[ 0 0 0 0 0 0]
[ 0 0 1 2 3 4]
[ 0 5 6 7 8 9]
[ 0 10 11 12 13 14]
[ 0 15 16 17 18 19]]有人能简要解释一下np.pad()中第二个参数是如何工作的吗?
发布于 2020-12-11 14:59:04
让我们从第二个示例(一个二维数组)开始。
当您运行np.pad(a, (1,0), 'constant')时(1,0)意味着:
结果是:
在数组之前添加
H 120添加的元素,H 221F 222因此,结果是:
array([[ 0, 0, 0, 0, 0, 0],
[ 0, 0, 1, 2, 3, 4],
[ 0, 5, 6, 7, 8, 9],
[ 0, 10, 11, 12, 13, 14],
[ 0, 15, 16, 17, 18, 19]]),现在看第一个例子。让我们创建也是int类型的数组:
a = np.zeros((2,2,2,2), dtype=int)
a = a + 7然后,当您运行apad = np.pad(a, ((0,0),(0,0),(1,1),(1,1)), 'constant')时:
在第1和第2维(前2对(0,0))中没有添加
结果是:
array([[[[0, 0, 0, 0],
[0, 7, 7, 0],
[0, 7, 7, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 7, 7, 0],
[0, 7, 7, 0],
[0, 0, 0, 0]]],
[[[0, 0, 0, 0],
[0, 7, 7, 0],
[0, 7, 7, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 7, 7, 0],
[0, 7, 7, 0],
[0, 0, 0, 0]]]])https://stackoverflow.com/questions/65245683
复制相似问题