I want to take the part of mat (matrix) after every three slides. The code I have is taking the part of matrix after one slide. I want to take the first 3 by 3 part of the matrix and then slide 3 columns to the right and take 3 by 3 part and so on, going through all the matrix.
n1=np.array(([1,2,3,4,5,6],[7,8,9,10,11,12],[12,13,14,15,16,17],[18,19,20,21,22,23],[24,25,26,27,28,29],[30,31,32,33,34,35]))
print(n1)
k=3
for i in range(3):
for j in range(3):
mat = n1[i:i+k, j:j+k]
print(mat)
You can use slicing on both rows and cols like the code bellow... Check out the docs here
import numpy as np
n1=np.array(([1,2,3,4,5,6],[7,8,9,10,11,12],[12,13,14,15,16,17],[18,19,20,21,22,23],[24,25,26,27,28,29],[30,31,32,33,34,35]))
print(n1)
MAX_WIDTH = 3
MAX_HEIGHT = 3
for r in range(0, len(n1[0]), MAX_HEIGHT):
for c in range(0, len(n1), MAX_WIDTH):
print(n1[r:r+MAX_HEIGHT, c:c+MAX_WIDTH])