Поиск координат углов Парето массива N x M

#python #numpy #multidimensional-array #coordinates

#python #numpy #многомерный массив #координаты

Вопрос:

У меня есть следующий массив размером 90 x 2 a , где первый столбец — это x, второй столбец — значения y.

 array([[17.22      , 18.46366161],
       [19.68      , 18.46366161],
       [18.45      , 20.5940841 ],
       [17.22      , 22.7245066 ],
       [22.14      , 18.46366161],
       [20.91      , 20.5940841 ],
       [19.68      , 22.7245066 ],
       [17.22      ,  9.94197164],
       [23.37      , 20.5940841 ],
       [22.14      , 22.7245066 ],
       [19.68      ,  9.94197164],
       [18.45      , 12.07239413],
       [17.22      , 14.20281662],
       [ 9.84      , 18.46366161],
       [ 8.61      , 20.5940841 ],
       [22.14      ,  9.94197164],
       [20.91      , 12.07239413],
       [19.68      , 14.20281662],
       [18.45      , 16.33323912],
       [12.3       , 18.46366161],
       [11.07      , 20.5940841 ],
       [ 9.84      , 22.7245066 ],
       [23.37      , 12.07239413],
       [22.14      , 14.20281662],
       [20.91      , 16.33323912],
       [14.76      , 18.46366161],
       [13.53      , 20.5940841 ],
       [12.3       , 22.7245066 ],
       [ 9.84      ,  9.94197164],
       [ 8.61      , 12.07239413],
       [23.37      , 16.33323912],
       [15.99      , 20.5940841 ],
       [14.76      , 22.7245066 ],
       [12.3       ,  9.94197164],
       [11.07      , 12.07239413],
       [ 9.84      , 14.20281662],
       [ 8.61      , 16.33323912],
       [14.76      ,  9.94197164],
       [13.53      , 12.07239413],
       [12.3       , 14.20281662],
       [11.07      , 16.33323912],
       [15.99      , 12.07239413],
       [14.76      , 14.20281662],
       [13.53      , 16.33323912],
       [15.99      , 16.33323912],
       [18.45      , 17.75352078],
       [20.91      , 17.75352078],
       [19.68      , 19.88394327],
       [18.45      , 22.01436576],
       [23.37      , 17.75352078],
       [22.14      , 19.88394327],
       [20.91      , 22.01436576],
       [19.68      , 24.14478826],
       [ 8.61      , 17.75352078],
       [23.37      , 22.01436576],
       [22.14      , 24.14478826],
       [19.68      , 11.3622533 ],
       [18.45      , 13.49267579],
       [11.07      , 17.75352078],
       [ 9.84      , 19.88394327],
       [ 8.61      , 22.01436576],
       [22.14      , 11.3622533 ],
       [20.91      , 13.49267579],
       [19.68      , 15.62309828],
       [13.53      , 17.75352078],
       [12.3       , 19.88394327],
       [11.07      , 22.01436576],
       [ 9.84      , 24.14478826],
       [23.37      , 13.49267579],
       [22.14      , 15.62309828],
       [15.99      , 17.75352078],
       [14.76      , 19.88394327],
       [13.53      , 22.01436576],
       [12.3       , 24.14478826],
       [ 9.84      , 11.3622533 ],
       [ 8.61      , 13.49267579],
       [17.22      , 19.88394327],
       [15.99      , 22.01436576],
       [14.76      , 24.14478826],
       [12.3       , 11.3622533 ],
       [11.07      , 13.49267579],
       [ 9.84      , 15.62309828],
       [17.22      , 24.14478826],
       [14.76      , 11.3622533 ],
       [13.53      , 13.49267579],
       [12.3       , 15.62309828],
       [17.22      , 11.3622533 ],
       [15.99      , 13.49267579],
       [14.76      , 15.62309828],
       [17.22      , 15.62309828]])
 

Я пытаюсь получить углы Парето этого массива:

Координата 1: минимум x 1, максимум y, координата 2 : максимум x — 1, максимум y, Координата 3 : минимум x 1, минимум y, Координата 4 : максимум x — 1, минимум y, координата 5 : минимум x, максимум y-2, координата 6 : максимум x, max y-2, координата 7: минимум x, минимум y 2, Координата 8: максимум x, минимум y 2,

Я смог получить это с corners = a[::a.shape[0]-1, ::a.shape[1]-1] помощью . Но это не работает с этим конкретным набором массивов и, возможно, с другими 2D-массивами.

Любой совет?

Комментарии:

1. Под «углами» вы подразумеваете первую и последнюю строки? Это всегда для 2D-массивов или для массивов с большим количеством измерений?

2. Я отредактировал исходное сообщение, возможно, более правильным термином является угол Парето, поскольку технически это не просто минимальное и максимальное значение x и y — надеюсь, это имеет смысл