numpy,从3d

时间:2018-02-28 14:51:57

标签: numpy 3d row extract

是否可以从3d数组中提取某些行。

例如,

a = np.arange(27).reshape(3,3,3)

然后,

a = 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]]])

如果我有随机索引

array([0,1,1])

如何提取与上述索引相对应的某些行

表示结果是

result =

array([[0,1,2],

       [12,13,14],

       [21,22,23]])

它的维度现在是2d。

1 个答案:

答案 0 :(得分:0)

a = np.arange(27).reshape(3,3,3)
b = np.array([0,1,1])
print(a[np.arange(len(a)),b])