I'm just wondering how could I do such thing without using loops.
I made a simple test trying to call a division as we do with a numpy.array, but I got the same ndarray.
N = 2
M = 3
matrix_a = np.array([[15., 27., 360.],
[180., 265., 79.]])
matrix_b = np.array([[.5, 1., .3],
[.25, .7, .4]])
matrix_c = np.zeros((N, M), float)
n_size = 360./N
m_size = 1./M
for i in range(N):
for j in range(M):
n = int(matrix_a[i][j] / n_size) % N
m = int(matrix_b[i][j] / m_size) % M
matrix_c[n][m] += 1
matrix_c / (N * M)
print matrix_c
I guess this should be pretty simple. Any help would be appreciated.
I think that you want to modify matrix_c
in-place:
matrix_c /= (N * M)
Or probably less effective:
matrix_c = matrix_c / (N * M)
Expression matrix_c / (N * M)
doesn't change matrix_c
- it creates a new matrix.