以下脚本从包含在列表中的颜色渐变创建一个 RGB 数组。数组 'cabbage' 的元素是列表 'cucumber' 的索引。以下脚本创建了一个数组 'cauliflower',其形状与 'cabbage' 相同,但索引替换为来自 'cucumber' 的相应元组。Numpy 中是否有更直接的方法来执行此过程?
from numpy import array, shape, zeros
cabbage = array([[0,3,2],[3,2,1],[3,1,0]])
cucumber=[(0,100,0),(0,150,0),(0,200,0),(0,255,0)]
rows ,cols = shape(cabbage)
cauliflower = zeros((rows,cols),dtype=object)
for row in range(rows):
for col in range(cols):
cauliflower[row,col]=cucumber[cabbage[row,col]]
print cauliflower
[[(0, 100, 0) (0, 255, 0) (0, 200, 0)]
[(0, 255, 0) (0, 200, 0) (0, 150, 0)]
[(0, 255, 0) (0, 150, 0) (0, 100, 0)]]