NumPy: Как определить индекс первой оси ndarray согласно некоторому условию? - PullRequest
0 голосов
/ 23 апреля 2020

Рассмотрим следующий ndarray a -

In [117]: a                                                                                          
Out[117]: 
array([[[nan, nan],
        [nan, nan],
        [nan, nan]],

       [[ 3., 11.],
        [ 7., 13.],
        [12., 16.]],

       [[ 0.,  4.],
        [ 6.,  1.],
        [ 5.,  8.]],

       [[17., 10.],
        [15.,  9.],
        [ 2., 14.]]])

Минимальное значение, вычисленное по первой оси, равно -

In [118]: np.nanmin(a, 0)                                                                            
Out[118]: 
array([[0., 4.],
       [6., 1.],
       [2., 8.]])

, что составляет a[2] при визуальном осмотре. Как наиболее эффективно рассчитать этот показатель 2

1 Ответ

1 голос
/ 23 апреля 2020

в соответствии с предложением @Divakar вы можете использовать np.nanargmin

import numpy as np

a = np.array([[[np.nan, np.nan],
        [np.nan, np.nan],
        [np.nan, np.nan]],

       [[ 3., 11.],
        [ 7., 13.],
        [12., 16.]],

       [[ 0.,  4.],
        [ 6.,  1.],
        [ 5.,  8.]],

       [[17., 10.],
        [15.,  9.],
        [ 2., 14.]]])
minIdx = np.nanargmin(np.sum(a,(1,2)))
minIdx
2
a[minIdx]
array([[0., 4.],
       [6., 1.],
       [5., 8.]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...