Как рассчитать среднее значение столбцов из списков массивов в python с помощью numpy?

Я пытаюсь рассчитать среднее значение столбцов из списка массивов.

f1_score = [array([0.807892  , 0.91698113, 0.73846154]),
            array([0.80041797, 0.9056244 , 0.72017837]),
            array([0.80541103, 0.91493384, 0.70282486])]

Я также пробовал, как указано ниже, но не смог получить среднее значение для столбцов.

output = []
for i in range(len(f1_score)): 
   output.append(np.mean(f1_score[i], axis = 0))

Я получаю средние значения для строк:

[0.8211115582302323, 0.8087402497928408, 0.8077232421210242]

Но мне нужны средние значения для столбцов:

array([0.8045736667, 0.9125131233, 0.7204882567])

Заранее спасибо за ваш ответ.

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
0
5 458
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если вы не возражаете против использования numpy, вы можете сделать следующее

import numpy as np
arr = np.random.randint(0,10,size=(2,2)) #sample data
arr
#array([[0, 2],
#       [6, 1]])
arr.mean(axis=0) #mean along the columns
# array([3. , 1.5])
arr.mean(axis=1) #mean along the rows
# array([1. , 3.5])

Кроме того, вы можете найти средства, выполнив следующие действия.

arr = [[0,2], [6,1]]
col_means = [sum(i)/len(i) for i in zip(*arr)] #column wise means
# [3.0, 1.5]
row_means = [sum(i)/len(i) for i in arr] #row wise means
# [1.0, 3.5]
Ответ принят как подходящий

Вы можете использовать среднюю функцию numpy и установить ось как 0.

mean(f1_score, axis=0)

И тогда вы получите нужный ответ

array([0.80457367, 0.91251312, 0.72048826])

Попробуй это:

f1_score = [[0.807892  , 0.91698113, 0.73846154],[0.80041797, 0.9056244 ,0.72017837],[0.80541103, 0.91493384, 0.70282486]]
temp=[]
output = []
for i in range(len(f1_score)):
    for j in range(len(f1_score)):
        temp.append(f1_score[j][i])
    output.append(np.mean(temp))
print(output)

Другие вопросы по теме