2013-11-10 4 views
1

Предоставлено три списка:Вычислить среднее из массивов в NumPy

A = [1, 2, 3] 
B = [4, 5, 6] 
C = [7, 8, 9] 

Как рассчитать среднее из следующих (столбцов)?

  • Среднее значение [1, 4, 7]
  • среднее [2, 5, 8]
  • Среднее значение [3, 6, 9]

Не следующее (строк),

  • среднее [1, 2, 3]
  • среднее [4, 5, 6]
  • Среднее значение [7, 8, 9]

import numpy as np 
A = np.array([1,2,3]) 
B = np.array([4,5,6]) 
C = np.array([7,8,9]) 

Что я должен делать?

+3

Это ясно написано в документации: http://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html – Raiyan

+0

этот вопрос не только о вычислении среднего, но до того, что списки имеют чтобы быть организованным, но как? @ Raiyan – 2964502

+0

Этот вопрос не должен быть закрыт как не по теме, но, вероятно, существует дубликат (учитывая, что он является таким базовым (или другие опубликовали тот же домашний вопрос). –

ответ

1

Использование numpy.ndarray.transpose:

>>> np.array([ 
...  [1,2,3], 
...  [4,5,6], 
...  [7,8,9] 
... ]).transpose().mean(axis=1) 
array([ 4., 5., 6.]) 

или с помощью numpy.transpose:

>>> np.transpose([ 
...  [1,2,3], 
...  [4,5,6], 
...  [7,8,9] 
... ]).mean(axis=1) 
array([ 4., 5., 6.]) 

UPDATE

Как отметил Дейв Гиршфельд, значит над axis=0 будет намного лучше:

>>> np.array([ 
...  [1,2,3], 
...  [4,5,6], 
...  [7,8,9] 
... ]).mean(axis=0) 
array([ 4., 5., 6.]) 
+5

Несмотря на то, что транспонирование в numpy просто возвращает другой «вид» на базовые данные и фактически не копирует и не перемещает какие-либо данные, он по-прежнему кажется избыточным - просто возьмите среднее значение над осью = 0' –

+0

@DaveHirschfeld, Thank вы для комментариев. Я обновил ответ в соответствии с вашими комментариями. Извините за ответ слишком поздно. – falsetru

1
import numpy as np 
A = np.array([1,2,3]) 
B = np.array([4,5,6]) 
C = np.array([7,8,9]) 

Z = zip(A,B,C) 

for z in Z : 
    print np.mean(np.asarray(z)) 
Смежные вопросы