Вы можете подумать, что можете использовать numpy.random.shuffle
, но это перетасовывает только первое измерение. Для вашего изображения это будет перемешивать строки, а не все пиксели.
Вы можете использовать numpy.random.shuffle
, если вы преобразуете свой массив из фигуры (m, n, 3) в (m * n, 3). Вы можете создать «представление» вашего массива, имеющего эту форму, и передать его numpy.random.shuffle
. Это также перетасует ваш массив, потому что numpy.random.shuffle
работает на месте. Так что после того, как вы напишите cct = np.concatenate((zz,oo),1)
, вы можете сделать
np.random.shuffle(cct.reshape(-1, 3))
В общем, это не сработает, потому что метод reshape
может вернуть копию, и в этом случае приведенная выше строка будет перемешивать копию на месте, но не изменит оригинальный массив. В вашем случае вы только что создали cct
, используя np.concatenate
, поэтому массив является C-смежным, а cct.reshape(-1, 3)
возвращает представление.