Divide ndarray by scalar - Numpy / Python

division, matrix, numpy, python

Solution

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.

Problem

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.

Original source