Как найти максимальный и минимальный элемент из диапазона, не используя цикл?

Как в numpy без цикла найти максимальный и минимальный элемент?

Только не из всего массива, а с конкретно заданного диапазона. Например, с 2 по 5 элемент.

Вот мой код с циклом, как пример того, чего хочу достичь:

import numpy as np
input_ = np.array([[1,2,3,12,2,8], 
                   [15,25,32,75,57,35] , 
                   [18,22,32,53,57,46] , 
                   [13,23,35,53,55,83]])
max_ = input_[0][2]
min_ = input_[3][2]
for i in range(2, 5):
    if max_ < input_[0][i]:
        max_ = input_[0][i]
    if min_ > input_[3][i]:
        min_ = input_[3][i]
print(min_, max_)

Ответы (1 шт):

Автор решения: MaxU

Если речь идет о нахождении минимума/максимума в столбцах со второго по пятый:

a = np.array([[1,2,3,12,2,8], [15,25,32,75,57,35] , [18,22,32,53,57,46] , [13,23,35,53,55,83]])

min_, max_ = a[:, 2:5].min(), a[:, 2:5].max()

Чтобы найти минимум/максимум элементов матрицы в нулевой и третьей строках и учитывая столбцы только со 2-го по 5-й :

In [37]: min_, max_ = a[[0,3], 2:5].min(), a[[0,3], 2:5].max()

In [38]: min_
Out[38]: 2

In [39]: max_
Out[39]: 55

In [40]: a[[0,3], 2:5]
Out[40]:
array([[ 3, 12,  2],
       [35, 53, 55]])

In [41]: a
Out[41]:
array([[ 1,  2,  3, 12,  2,  8],
       [15, 25, 32, 75, 57, 35],
       [18, 22, 32, 53, 57, 46],
       [13, 23, 35, 53, 55, 83]])

Как работает индексирование и срезы в Numpy

Numpy tutorial...

PS в своем коде вы "убили" сразу три встроенных функции - input(), min(), max() - никогда не называйте свои объекты именами встроенных функций или модулей.

→ Ссылка