@montpellier

Найти в каждом столбце наименьшее значение среди положительных элементов матрицы?

Помогите, пожалуйста, с условием положительности, ниже приложил кусок
Код
for j in range(n):
    mn = B[0][j]
    for i in range(n):
        if B[i][j] < mn and B[i][j]>=0:
            mn = B[i][j]
    print(" %3d " % mn, end='')

Проверяет только у первых положительных элементов в столбце, как сделать чтобы у столбцов с первым отрицательным элементом тоже искало положительные?
Скрин

6038d2e26c37d503112520.png
  • Вопрос задан
  • 394 просмотра
Пригласить эксперта
Ответы на вопрос 2
MinTnt
@MinTnt
print(list(map(lambda x: min([i for i in x if i > 0]), B)))

Такое решение сойдёт?
Ответ написан
deeppsycoder
@deeppsycoder
клинический психолог
Я так понимаю, что если B - матрица, то речь идёт о numpy? Тогда циклы, скорей всего, неуместны, и надо решать методами numpy.

Например так.

# import numpy as np


# B = np.array([[0, -1, 1], [2, 1, 2], [3, -1, -1]])
B[B <= 0] = B.max()  # или можно B[B <= 0] = np.inf, если значения типа float
B.min(0)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы