Let's apply the ix_()
function to shuffle the Lena photo. The following is the code for this example without comments. The finished code for the recipe can be found in ix.py
in this book's code bundle:
import scipy.misc import matplotlib.pyplot as plt import numpy as np face = scipy.misc.face() xmax = face.shape[0] ymax = face.shape[1] def shuffle_indices(size): arr = np.arange(size) np.random.shuffle(arr) return arr xindices = shuffle_indices(xmax) np.testing.assert_equal(len(xindices), xmax) yindices = shuffle_indices(ymax) np.testing.assert_equal(len(yindices), ymax) plt.imshow(face[np.ix_(xindices, yindices)]) plt.show()
This function produces a mesh from multiple sequences. We hand in parameters as one-dimensional sequences and the function gives back a tuple of NumPy arrays, for instance, as follows:
In : ix_([0,1], [2...