i want to apply convolution2D in Python, i want to apply np.sum() each P[0],P[1] not use for-loops.
import numpy as np
arr = np.array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
K = np.array([[[1,0,1,1],
[0,1,0,1 ],
[1,0,1,1 ],
[1,1,1,1 ]],
[[1,1,1,1],
[1,1,1,1 ],
[1,1,1,1 ],
[1,1,1,1 ]]])
P = np.zeros((2, 2, 2))
for i in range(2):
for j in range(2):
P[:,i,j] = np.sum(K[:,i:i+3,j:j+3]*arr)
print(P)
so i did like this, but np.sum did sum all K[0]+K[1]. What can i do?
for i in range(2):
for j in range(2):
for k in range(2):
P[k,i,j] = np.sum(K[k,i:i+3,j:j+3]*arr)
print(P)
i don't want to use this k-for-loops. thanks.