Python numpy数组中的索引

Python numpy数组中的索引,python,numpy,Python,Numpy,给定查找表: colors = [ [0,0,0],\ [0, 255, 0],\ [0, 0, 255],\ [255, 0, 0]] 以及索引numpy矩阵输入2x2: a = np.array([[0,1],[1,1]]) 如何将a映射到2x2x3矩阵b,其中b[I][j]=颜色[a[I][j]]?我想在这里避免使用for循环。您是否尝试过: colors[a] 下面是一个完整的示例: import numpy

给定查找表:

colors = [  [0,0,0],\
            [0, 255, 0],\
            [0, 0, 255],\
            [255, 0, 0]]
以及索引numpy矩阵输入2x2:

a = np.array([[0,1],[1,1]])
如何将a映射到2x2x3矩阵b,其中
b[I][j]=颜色[a[I][j]]
?我想在这里避免使用for循环。

您是否尝试过:

colors[a]
下面是一个完整的示例:

import numpy as np

colors = np.array([[0,0,0],
                   [0, 255, 0],
                   [0, 0, 255],
                   [255, 0, 0]
                  ])
a = np.array([[0, 1], [1, 1]])

new = colors[a]
new.shape
# (2, 2, 3)
new
# array([[[  0,   0,   0],
#         [  0, 255,   0]],
#
#        [[  0, 255,   0],
#         [  0, 255,   0]]])

请注意,在这里使用numpy数组重新定义颜色,否则“OP colors”会出现错误。@agstudy,非常正确。如果
colors
是一个列表列表,则只能使用切片或整数对其进行索引。