Вы можете изменить форму массива, чтобы получить желаемый эффект:
img = NP.zeros((100, 100, 3), dtype='int')
img[:,:,0] = NP.arange(0, 10000).reshape(100, 100)
img[:,:,1] = 1
img[:,:,2] = 2
Свести изображение так, чтобы каждый цвет представлял собой столбец (т. Е. 10000 x 3):
img.reshape(-1, 3)
Вывод:
array([[ 0, 22222, 33333],
[ 1, 22222, 33333],
[ 2, 22222, 33333],
...,
[ 9997, 22222, 33333],
[ 9998, 22222, 33333],
[ 9999, 22222, 33333]])
Для преобразования в массив 3 x 10000 вы можете использовать:
img.transpose(2, 0, 1).reshape(3, -1)
Выход:
array([[ 0, 1, 2, ..., 9997, 9998, 9999],
[22222, 22222, 22222, ..., 22222, 22222, 22222],
[33333, 33333, 33333, ..., 33333, 33333, 33333]])