How to "scale" a numpy array?
You should use the Kronecker product, numpy.kron:
Computes the Kronecker product, a composite array made of blocks of the second array scaled by the first
import numpy as npa = np.array([[1, 1], [0, 1]])n = 2np.kron(a, np.ones((n,n)))
which gives what you want:
array([[1, 1, 1, 1], [1, 1, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]])
scipy.misc.imresize
can scale images. It can be used to scale numpy arrays, too:
#!/usr/bin/env pythonimport numpy as npimport scipy.miscdef scale_array(x, new_size): min_el = np.min(x) max_el = np.max(x) y = scipy.misc.imresize(x, new_size, mode='L', interp='nearest') y = y / 255 * (max_el - min_el) + min_el return yx = np.array([[1, 1], [0, 1]])n = 2new_size = n * np.array(x.shape)y = scale_array(x, new_size)print(y)