2016-05-05 95 views
1

給定一個300 numpy值的數組,其中前100個是紅色像素值,第二個100個綠色和最後100個藍色,是否有快速的方式使用重塑將初始1x30​​0列表重新排列爲100x3矩陣,其中每行包含匹配RGB值?如何將像素列表重塑爲RGB矩陣?

回答

2

爲了更易於管理,我們假設您有一個numpy數組pix,其中有30個值,其中前10個是紅色,然後是10綠色,然後是10藍色。例如:

>>> import numpy as np 
>>> pix = np.arange(30) 
>>> pix 
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 
     17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]) 

爲了重塑到這一點的RGB值,使用一個10x3數組:

>>> pix.reshape(3, 10).transpose() 
array([[ 0, 10, 20], 
     [ 1, 11, 21], 
     [ 2, 12, 22], 
     [ 3, 13, 23], 
     [ 4, 14, 24], 
     [ 5, 15, 25], 
     [ 6, 16, 26], 
     [ 7, 17, 27], 
     [ 8, 18, 28], 
     [ 9, 19, 29]])