沿指定轴的3D NumPy数组中的最小值

时间:2019-01-31 16:23:46

标签: python numpy multidimensional-array indexing minimum

假设您有一个3D数组,如下所示:

a = np.random.uniform(0,10,(3,4,4))

a
Out[167]: 
array([[[6.11382489, 5.33572952, 2.6994938 , 5.32924568],
        [0.02494179, 9.5813176 , 3.78090323, 7.73698908],
        [0.4559432 , 3.14531716, 4.18929635, 9.44256735],
        [7.05641989, 0.51355523, 6.61806454, 1.3124488 ]],

       [[9.79806021, 6.9343234 , 3.96018673, 8.97424501],
        [3.25146771, 5.06744849, 6.05870707, 2.27286515],
        [4.66656429, 6.92791142, 7.1623226 , 5.34108811],
        [6.09831564, 9.52367529, 8.27257007, 8.01510805]],

       [[5.62545596, 9.01048599, 6.76713644, 7.71836144],
        [5.59842752, 0.34003062, 8.07114444, 8.5382837 ],
        [0.20420194, 6.39088367, 4.97895935, 4.26247875],
        [1.2701483 , 8.35244104, 2.69965027, 8.39305974]]])

是否有一种方法可以有效地获取axis=0上的切片中的最小值作为一个数组?

因此,在这种情况下,我将指定axis=0(即尺寸长度为3的轴)并返回最小值:(0.02494179, 2.27286515, 0.20420194)

我觉得这是一个简单的问题,但是我似乎无法使其正常工作,因此,对此问题的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果我做对了,您只需两次应用“最小”

例如:

>>> np.random.seed(1)  #reproduce the same results 
>>> a = np.random.randint(0,10,(3,2,4)) #using int is easier to understand                                                                       
Out[4]: 
array([[[5, 8, 9, 5],
        [0, 0, 1, 7]],

       [[6, 9, 2, 4],
        [5, 2, 4, 2]],

       [[4, 7, 7, 9],
        [1, 7, 0, 6]]])

 >>> a.min(axis=0).min(axis=0)                                                                          
Out[5]: array([0, 0, 0, 2])

这是我第一次发布答案,希望我还可以。