矩阵元素和和的算术平均值

时间:2019-11-24 23:33:53

标签: python arrays numpy

我必须找到矩阵元素的算术平均值以及主对角线元素为负的矩阵那些行的元素之和。

这是我所做的。

import numpy as np
import random
m, n = 3, 3
f_sum = 0
def row_sum(arr):
    global f_sum
    sum = 0
    for i in range(3):
        for j in range(3):
            sum += arr[i][j]

            if arr[i][i] < 0:
                f_sum = sum
        sum = 0

arr = np.zeros((3, 3))

for i in range(m):
    for j in range(n):
        arr[i][j] = random.randint(-20, 20)

row_sum(arr)
mean = round(np.mean(arr), 2)
print(arr)
print('\n', "среднее арифметическое = ", mean)
print('\n',"сумму элементов = ", f_sum)

现在我面临的问题是,在计算主对角线元素为负的那些行的元素之和时,我只能得到最后的和。

结果看起来像这样

the results can look like that

1 个答案:

答案 0 :(得分:1)

更麻木的'esque'方法就是这样

import numpy as np

n, m = 3, 3

arr = np.random.randint(-20,20, size=(n,m))
print(arr)

diag  = np.diagonal(arr)
w     = diag < 0
f_sum = np.sum(arr[w], axis=1)

print(f_sum)
  • 您使用diag提取np.diagonal中的对角线元素。
  • 您发现对角元素为负数的行存储在w中。
  • 最后,您只选择w所指示的行并对它们求和。