我需要在所有4面有效地填充一个numpy数组,使用第一行/列作为填充数据。例如,考虑到以下情况:
A=np.array([[1 2 3 4],
[5 6 7 8],
[9 10 11 12]])最后我想:
B=np.array([[1 1 2 3 4 4],
[1 1 2 3 4 4],
[5 5 6 7 8 8],
[9 9 10 11 12 12],
[9 9 10 11 12 12]])注意,原始数组A位于: B1:-1,1:-1。我假设我可以先从一个方向(水平或垂直方向)进行填充,以得到重复的角值。然而,我的矢量化/数字化正在使我失败。(注意:我正在使用的数组相当大,我需要多次执行这个选项,所以高效地执行它是关键--我可以用一个循环来完成它,但它非常慢)。
发布于 2014-10-30 17:41:59
使用np.pad,您可以指定填充的宽度和要应用于数组的填充模式。对于示例数组,edge填充模式提供了所需的结果:
>>> np.pad(A, 1, 'edge')
array([[ 1, 1, 2, 3, 4, 4],
[ 1, 1, 2, 3, 4, 4],
[ 5, 5, 6, 7, 8, 8],
[ 9, 9, 10, 11, 12, 12],
[ 9, 9, 10, 11, 12, 12]])https://stackoverflow.com/questions/26659803
复制相似问题