.Найти сумму элементов в тех строках матрицы, которые содержат хотя бы один отрицательный элемент
необходимо реализовать через numy и без Для заданной матрицы размером 8 x 8 найти такие k, что элементы k-й строки матрицы совпадают с элементами k-ого столбца. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Моя попытка выглядела так
import numpy as np
n = 8
A = np.random.random_integers(-1, 1, size=(n, n))
for Row in range(n):
for Col in range(n):
print("{0:>5.0f}".format(A[Row][Col]), end=" ")
print()
def task(matr):
s_tot = 0
for row in matr:
s_curr = 0
flg = False
for a in row:
s_curr += a
if a < 0: flg = True
if flg: s_tot += s_curr
print(f"Row: {row} |SumRow{s_curr}| Sum: {s_tot}")
print(task(A))
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Отвечу на тот вопрос, который я понял:
Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Пример данных - матрица 3x3:
In [24]: a = np.array([[-1, 2, 3], [2, 3, 4], [5, 6, -20]])
In [25]: a
Out[25]:
array([[ -1, 2, 3],
[ 2, 3, 4],
[ 5, 6, -20]])
решение:
In [28]: a[(a < 0).any(axis=1)].sum(axis=1)
Out[28]: array([ 4, -9])
пошагово:
In [29]: (a < 0)
Out[29]:
array([[ True, False, False],
[False, False, False],
[False, False, True]])
In [30]: (a < 0).any(axis=1)
Out[30]: array([ True, False, True])
In [31]: a[(a < 0).any(axis=1)]
Out[31]:
array([[ -1, 2, 3],
[ 5, 6, -20]])
In [32]: a[(a < 0).any(axis=1)].sum(axis=1)
Out[32]: array([ 4, -9])