I was wondering if there is an efficient method to pad an array in python, without using numpy.pad()
I know a way that uses nested for loops, but I wanted to know if there's a faster method?
Input:
row padding on top- 2
column padding from left - 1
1 2 3
4 5 6
7 8 9
Output
0 0 0 0
0 0 0 0
0 1 2 3
0 4 5 6
0 7 8 9
what I've done
y = [[1,2,3],[4,5,6],[7,8,9]]
topPadding = 2
leftPadding = 1
noOfRows = len(y)+topPadding
noOfCols = len(y)+leftPadding
x = [[0 for i in range(noOfCols)] for j in range(noOfRows)]
for i in range(topPadding,noOfRows):
for j in range(leftPadding,noOfCols):
x[i][j] = y[i-topPadding][j-leftPadding]
print()
print(x)
Output
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 1, 2, 3], [0, 4, 5, 6], [0, 7, 8, 9]]