Как найти максимальный и минимальный элемент из диапазона, не используя цикл?
Как в 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
PS в своем коде вы "убили" сразу три встроенных функции - input(), min(), max() - никогда не называйте свои объекты именами встроенных функций или модулей.