2015-11-09 3 views
3

Мне нужно взять nanmean столбцов в матрице в python. например:nanmean матричных столбцов в numpy

import numpy as np 
a=[[np.nan,2,3,4],[5,np.nan,7,8],[9,10,np.nan,12]] 
a= 
matrix([[ nan, 2., 3., 4.], 
     [ 5., nan, 7., 8.], 
     [ 9., 10., nan, 12.]]) 

Я хочу что-то вроде np.nanmean (а), который будет возвращать [7,6,5,8], текущая команда возвращает 6,66

Спасибо
Ариэль

ответ

2

Для достижения результата вам нужно использовать ключевое слово axis=0!

import numpy as np 
a=[[np.nan,2,3,4],[5,np.nan,7,8],[9,10,np.nan,12]] 

>>> np.nanmean(a, axis=0) 
array([ 7., 6., 5., 8.]) 

Подробнее см. На docs.

Опуская ключевое слово, выдается среднее значение всех элементов матрицы, которые не являются np.nan.